Update of source files and integration of Portuguese translation

This commit is contained in:
Tomas Bures 2019-05-13 01:10:53 +02:00
parent 8eae6d6c41
commit a527b80291
40 changed files with 2019 additions and 1658 deletions

View file

@ -342,10 +342,10 @@ export default class API extends Component {
<pre>curl -XGET '{getUrl(`api/lists/test@example.com?access_token=${accessToken}`)}'</pre> <pre>curl -XGET '{getUrl(`api/lists/test@example.com?access_token=${accessToken}`)}'</pre>
<h4>GET /api/rss/fetch/:campaignCid {t('Trigger fetch of a campaign')}</h4> <h4>GET /api/rss/fetch/:campaignCid {t('triggerFetchOfACampaign')}</h4>
<p> <p>
{t('Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.')} {t('forcesTheRssFeedCheckToImmediatelyCheck')}
</p> </p>
<p> <p>
@ -364,7 +364,7 @@ export default class API extends Component {
<h4>POST /api/templates/:templateId/send {t('sendTransactionalEmail')}</h4> <h4>POST /api/templates/:templateId/send {t('sendTransactionalEmail')}</h4>
<p> <p>
{t('sendSingleEmailByTemplateId')} {t('sendSingleEmailByTemplateWithGiven')}
</p> </p>
<p> <p>
@ -379,10 +379,10 @@ export default class API extends Component {
</p> </p>
<ul> <ul>
<li><strong>EMAIL</strong> {t('emailAddress')} (<em>{t('required')}</em>)</li> <li><strong>EMAIL</strong> {t('emailAddress')} (<em>{t('required')}</em>)</li>
<li><strong>SEND_CONFIGURATION_ID</strong> {t('sendConfigurationId')}</li> <li><strong>SEND_CONFIGURATION_ID</strong> {t('idOfConfigurationUsedToCreateMailer')}</li>
<li><strong>SUBJECT</strong> {t('subject')}</li> <li><strong>SUBJECT</strong> {t('subject')}</li>
<li><strong>DATA</strong> {t('templateData')}: <em>{'{'} "any": ["type", {'{'}"of": "data"{'}'}] {'}'}</em></li> <li><strong>DATA</strong> {t('dataPassedToTemplateWhenCompilingWith')}: <em>{'{'} "any": ["type", {'{'}"of": "data"{'}'}] {'}'}</em></li>
<li><strong>VARIABLES</strong> {t('templateVariables')}: <em>{'{'} "FOO": "bar" {'}'}</em></li> <li><strong>VARIABLES</strong> {t('mapOfTemplatesubjectVariablesToReplace')}: <em>{'{'} "FOO": "bar" {'}'}</em></li>
</ul> </ul>
<p> <p>

View file

@ -409,26 +409,26 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (afterSubmitAction === CUD.AfterSubmitAction.STATUS) { if (afterSubmitAction === CUD.AfterSubmitAction.STATUS) {
this.navigateToWithFlashMessage(`/campaigns/${this.props.entity.id}/status`, 'success', t('Campaign updated')); this.navigateToWithFlashMessage(`/campaigns/${this.props.entity.id}/status`, 'success', t('campaignUpdated'));
} else if (afterSubmitAction === CUD.AfterSubmitAction.LEAVE) { } else if (afterSubmitAction === CUD.AfterSubmitAction.LEAVE) {
this.navigateToWithFlashMessage('/campaigns', 'success', t('Campaign updated')); this.navigateToWithFlashMessage('/campaigns', 'success', t('campaignUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/campaigns-settings/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/campaigns-settings/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Campaign updated')); this.setFormStatusMessage('success', t('campaignUpdated'));
} }
} else { } else {
const sourceTypeKey = Number.parseInt(this.getFormValue('source')); const sourceTypeKey = Number.parseInt(this.getFormValue('source'));
if (sourceTypeKey === CampaignSource.CUSTOM || sourceTypeKey === CampaignSource.CUSTOM_FROM_TEMPLATE || sourceTypeKey === CampaignSource.CUSTOM_FROM_CAMPAIGN) { if (sourceTypeKey === CampaignSource.CUSTOM || sourceTypeKey === CampaignSource.CUSTOM_FROM_TEMPLATE || sourceTypeKey === CampaignSource.CUSTOM_FROM_CAMPAIGN) {
this.navigateToWithFlashMessage(`/campaigns/${submitResult}/content`, 'success', t('Campaign created')); this.navigateToWithFlashMessage(`/campaigns/${submitResult}/content`, 'success', t('campaignCreated'));
} else { } else {
if (afterSubmitAction === CUD.AfterSubmitAction.STATUS) { if (afterSubmitAction === CUD.AfterSubmitAction.STATUS) {
this.navigateToWithFlashMessage(`/campaigns/${submitResult}/status`, 'success', t('Campaign created')); this.navigateToWithFlashMessage(`/campaigns/${submitResult}/status`, 'success', t('campaignCreated'));
} else if (afterSubmitAction === CUD.AfterSubmitAction.LEAVE) { } else if (afterSubmitAction === CUD.AfterSubmitAction.LEAVE) {
this.navigateToWithFlashMessage(`/campaigns`, 'success', t('Campaign created')); this.navigateToWithFlashMessage(`/campaigns`, 'success', t('campaignCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/campaigns/${submitResult}/edit`, 'success', t('Campaign created')); this.navigateToWithFlashMessage(`/campaigns/${submitResult}/edit`, 'success', t('campaignCreated'));
} }
} }
} }
@ -739,7 +739,7 @@ export default class CUD extends Component {
<hr/> <hr/>
<Fieldset label={t('Tracking')}> <Fieldset label={t('tracking')}>
<CheckBox id="open_tracking_disabled" text={t('disableOpenedTracking')}/> <CheckBox id="open_tracking_disabled" text={t('disableOpenedTracking')}/>
<CheckBox id="click_tracking_disabled" text={t('disableClickedTracking')}/> <CheckBox id="click_tracking_disabled" text={t('disableClickedTracking')}/>
</Fieldset> </Fieldset>
@ -759,12 +759,12 @@ export default class CUD extends Component {
<ButtonRow> <ButtonRow>
{!isEdit && (sourceTypeKey === CampaignSource.CUSTOM || sourceTypeKey === CampaignSource.CUSTOM_FROM_TEMPLATE || sourceTypeKey === CampaignSource.CUSTOM_FROM_CAMPAIGN) ? {!isEdit && (sourceTypeKey === CampaignSource.CUSTOM || sourceTypeKey === CampaignSource.CUSTOM_FROM_TEMPLATE || sourceTypeKey === CampaignSource.CUSTOM_FROM_CAMPAIGN) ?
<Button type="submit" className="btn-primary" icon="check" label={t('Save and edit content')}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndEditContent')}/>
: :
<> <>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(CUD.AfterSubmitAction.LEAVE)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(CUD.AfterSubmitAction.LEAVE)}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and go to status')} onClickAsync={async () => await this.submitHandler(CUD.AfterSubmitAction.STATUS)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndGoToStatus')} onClickAsync={async () => await this.submitHandler(CUD.AfterSubmitAction.STATUS)}/>
</> </>
} }
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/campaigns/${this.props.entity.id}/delete`}/> } {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/campaigns/${this.props.entity.id}/delete`}/> }

View file

@ -143,13 +143,13 @@ export default class CustomContent extends Component {
if (submitResult) { if (submitResult) {
if (afterSubmitAction === CustomContent.AfterSubmitAction.STATUS) { if (afterSubmitAction === CustomContent.AfterSubmitAction.STATUS) {
this.navigateToWithFlashMessage(`/campaigns/${this.props.entity.id}/status`, 'success', t('Campaign updated')); this.navigateToWithFlashMessage(`/campaigns/${this.props.entity.id}/status`, 'success', t('campaignUpdated'));
} else if (afterSubmitAction === CustomContent.AfterSubmitAction.LEAVE) { } else if (afterSubmitAction === CustomContent.AfterSubmitAction.LEAVE) {
this.navigateToWithFlashMessage('/campaigns', 'success', t('Campaign updated')); this.navigateToWithFlashMessage('/campaigns', 'success', t('campaignUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/campaigns-content/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/campaigns-content/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Campaign updated')); this.setFormStatusMessage('success', t('campaignUpdated'));
} }
} else { } else {
this.enableForm(); this.enableForm();
@ -258,9 +258,9 @@ export default class CustomContent extends Component {
{customTemplateTypeKey && getEditForm(this, customTemplateTypeKey, 'data_sourceCustom_')} {customTemplateTypeKey && getEditForm(this, customTemplateTypeKey, 'data_sourceCustom_')}
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(CustomContent.AfterSubmitAction.LEAVE)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(CustomContent.AfterSubmitAction.LEAVE)}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and go to status')} onClickAsync={async () => await this.submitHandler(CustomContent.AfterSubmitAction.STATUS)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndGoToStatus')} onClickAsync={async () => await this.submitHandler(CustomContent.AfterSubmitAction.STATUS)}/>
<Button className="btn-success" icon="at" label={t('testSend')} onClickAsync={async () => this.setState({showTestSendModal: true})}/> <Button className="btn-success" icon="at" label={t('testSend')} onClickAsync={async () => this.setState({showTestSendModal: true})}/>
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -122,8 +122,8 @@ export default class Statistics extends Component {
<hr/> <hr/>
<h3>{t('Quick Reports')}</h3> <h3>{t('quickReports')}</h3>
<small className="text-muted"><Trans>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 <Link to="/reports">Reports</Link> functionality of Mailtrain.</Trans></small> <small className="text-muted"><Trans i18nKey="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 <Link to="/reports">Reports</Link> functionality of Mailtrain.</Trans></small>
<ul className="list-unstyled my-3"> <ul className="list-unstyled my-3">
<li><a href={getUrl(`quick-rpts/open-and-click-counts/${entity.id}`)}>Open and click counts per currently subscribed subscriber</a></li> <li><a href={getUrl(`quick-rpts/open-and-click-counts/${entity.id}`)}>Open and click counts per currently subscribed subscriber</a></li>
</ul> </ul>

View file

@ -201,7 +201,7 @@ class SendControls extends Component {
const t = this.props.t; const t = this.props.t;
this.actionDialog( this.actionDialog(
t('confirmLaunch'), t('confirmLaunch'),
t('doYouWantToLaunchTheCampaign?All'), t('doYouWantToLaunchTheCampaign?'),
async () => { async () => {
await this.startAsync(); await this.startAsync();
await this.refreshEntity(); await this.refreshEntity();
@ -281,7 +281,7 @@ class SendControls extends Component {
{this.getFormValue('sendLater') && {this.getFormValue('sendLater') &&
<div> <div>
<DatePicker id="date" label={t('date')} /> <DatePicker id="date" label={t('date')} />
<InputField id="time" label={t('time')} help={t('enter24hourTimeInFormatHhmmEg1348')}/> <InputField id="time" label={t('time')} help={t('enter24HourTimeInFormatHhmmEg1348')}/>
{/* TODO: Timezone selector */} {/* TODO: Timezone selector */}
</div> </div>
} }

View file

@ -170,17 +170,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/campaigns/${this.props.campaign.id}/triggers`, 'success', t('Trigger updated')); this.navigateToWithFlashMessage(`/campaigns/${this.props.campaign.id}/triggers`, 'success', t('triggerUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/triggers/${this.props.campaign.id}/${this.props.entity.id}`, ::this.getFormValuesMutator); await this.getFormValuesFromURL(`rest/triggers/${this.props.campaign.id}/${this.props.entity.id}`, ::this.getFormValuesMutator);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Trigger updated')); this.setFormStatusMessage('success', t('triggerUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/campaigns/${this.props.campaign.id}/triggers`, 'success', t('Trigger created')); this.navigateToWithFlashMessage(`/campaigns/${this.props.campaign.id}/triggers`, 'success', t('triggerCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/campaigns/${this.props.campaign.id}/triggers/${submitResult}/edit`, 'success', t('Trigger created')); this.navigateToWithFlashMessage(`/campaigns/${this.props.campaign.id}/triggers/${submitResult}/edit`, 'success', t('triggerCreated'));
} }
} }
} else { } else {
@ -245,8 +245,8 @@ export default class CUD extends Component {
<CheckBox id="enabled" text={t('enabled')}/> <CheckBox id="enabled" text={t('enabled')}/>
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/campaigns/${this.props.campaign.id}/triggers/${this.props.entity.id}/delete`}/>} {isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/campaigns/${this.props.campaign.id}/triggers/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -150,7 +150,7 @@ export default class Files extends Component {
{ label: t('no'), className: 'btn-primary', onClickAsync: ::this.hideDeleteFile }, { label: t('no'), className: 'btn-primary', onClickAsync: ::this.hideDeleteFile },
{ label: t('yes'), className: 'btn-danger', onClickAsync: ::this.performDeleteFile } { label: t('yes'), className: 'btn-danger', onClickAsync: ::this.performDeleteFile }
]}> ]}>
{t('filesareYouSureToDeleteFile', {name: this.state.fileToDeleteName})} {t('areYouSureYouWantToDeleteTheFile?', {name: this.state.fileToDeleteName})}
</ModalDialog> </ModalDialog>
{this.props.title && <Title>{this.props.title}</Title>} {this.props.title && <Title>{this.props.title}</Title>}

View file

@ -21,7 +21,7 @@ class NamespaceSelect extends Component {
function validateNamespace(t, state) { function validateNamespace(t, state) {
if (!state.getIn(['namespace', 'value'])) { if (!state.getIn(['namespace', 'value'])) {
state.setIn(['namespace', 'error'], t('namespacemustBeSelected')); state.setIn(['namespace', 'error'], t('namespaceMustBeSelected'));
} else { } else {
state.setIn(['namespace', 'error'], null); state.setIn(['namespace', 'error'], null);
} }

View file

@ -99,10 +99,10 @@ export class CKEditorHost extends Component {
<div className={styles.title}>{this.props.title}</div> <div className={styles.title}>{this.props.title}</div>
</div> </div>
<div className={styles.navbarRight}> <div className={styles.navbarRight}>
{this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('Save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="save"/></span>} {this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="save"/></span>}
<a className={styles.btn} onClick={this.props.onTestSend} title={t('Send test e-mail')}><Icon icon="at"/></a> <a className={styles.btn} onClick={this.props.onTestSend} title={t('sendTestEmail-1')}><Icon icon="at"/></a>
<a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('Show HTML')}><Icon icon="file-code"/></a> <a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('showHtml')}><Icon icon="file-code"/></a>
<a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('Maximize editor')}><Icon icon="window-maximize"/></a> <a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('maximizeEditor')}><Icon icon="window-maximize"/></a>
</div> </div>
</div> </div>
<UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="ckeditor/editor" tokenMethod="ckeditor" tokenParams={editorData}/> <UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="ckeditor/editor" tokenMethod="ckeditor" tokenParams={editorData}/>

View file

@ -94,12 +94,12 @@ export class CodeEditorHost extends Component {
<div className={styles.title}>{this.props.title}</div> <div className={styles.title}>{this.props.title}</div>
</div> </div>
<div className={styles.navbarRight}> <div className={styles.navbarRight}>
<a className={styles.btn} onClick={::this.toggleWrapAsync} title={this.state.wrap ? t('Disable word wrap') : t('Enable word wrap')}>{this.state.wrap ? 'WRAP': 'NOWRAP'}</a> <a className={styles.btn} onClick={::this.toggleWrapAsync} title={this.state.wrap ? t('disableWordWrap') : t('enableWordWrap')}>{this.state.wrap ? 'WRAP': 'NOWRAP'}</a>
{this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('Save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="floppy-disk"/></span>} {this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="floppy-disk"/></span>}
<a className={styles.btn} onClick={this.props.onTestSend} title={t('Send test e-mail')}><Icon icon="at"/></a> <a className={styles.btn} onClick={this.props.onTestSend} title={t('sendTestEmail-1')}><Icon icon="at"/></a>
<a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('Show HTML')}><Icon icon="file-code"/></a> <a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('showHtml')}><Icon icon="file-code"/></a>
<a className={styles.btn} onClick={::this.togglePreviewAsync} title={this.state.preview ? t('Hide preview'): t('Show preview')}><Icon icon={this.state.preview ? 'eye-slash': 'eye'}/></a> <a className={styles.btn} onClick={::this.togglePreviewAsync} title={this.state.preview ? t('hidePreview'): t('showPreview')}><Icon icon={this.state.preview ? 'eye-slash': 'eye'}/></a>
<a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('Maximize editor')}><Icon icon="window-maximize"/></a> <a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('maximizeEditor')}><Icon icon="window-maximize"/></a>
</div> </div>
</div> </div>
<UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="codeeditor/editor" tokenMethod="codeeditor" tokenParams={tokenData}/> <UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="codeeditor/editor" tokenMethod="codeeditor" tokenParams={tokenData}/>

View file

@ -75,11 +75,11 @@ export class GrapesJSHost extends Component {
<div className={styles.title}>{this.props.title}</div> <div className={styles.title}>{this.props.title}</div>
</div> </div>
<div className={styles.navbarRight}> <div className={styles.navbarRight}>
{this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('Save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="save"/></span>} {this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="save"/></span>}
<a className={styles.btn} onClick={this.props.onTestSend} title={t('Send test e-mail')}><Icon icon="at"/></a> <a className={styles.btn} onClick={this.props.onTestSend} title={t('sendTestEmail-1')}><Icon icon="at"/></a>
<a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('Show HTML')}><Icon icon="file-code"/></a> <a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('showHtml')}><Icon icon="file-code"/></a>
{this.props.sourceType === GrapesJSSourceType.MJML && <a className={styles.btn} onClick={() => this.props.onShowExport('mjml', 'MJML')} title={t('Show MJML')}>MJML</a>} {this.props.sourceType === GrapesJSSourceType.MJML && <a className={styles.btn} onClick={() => this.props.onShowExport('mjml', 'MJML')} title={t('showMjml')}>MJML</a>}
<a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('Maximize editor')}><Icon icon="window-maximize"/></a> <a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('maximizeEditor')}><Icon icon="window-maximize"/></a>
</div> </div>
</div> </div>
<UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="grapesjs/editor" tokenMethod="grapesjs" tokenParams={tokenData}/> <UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="grapesjs/editor" tokenMethod="grapesjs" tokenParams={tokenData}/>

View file

@ -77,10 +77,10 @@ export class MosaicoHost extends Component {
<div className={styles.title}>{this.props.title}</div> <div className={styles.title}>{this.props.title}</div>
</div> </div>
<div className={styles.navbarRight}> <div className={styles.navbarRight}>
{this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('Save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="save"/></span>} {this.props.canSave ? <a className={styles.btn} onClick={this.props.onSave} title={t('save')}><Icon icon="save"/></a> : <span className={styles.btnDisabled}><Icon icon="save"/></span>}
<a className={styles.btn} onClick={this.props.onTestSend} title={t('Send test e-mail')}><Icon icon="at"/></a> <a className={styles.btn} onClick={this.props.onTestSend} title={t('sendTestEmail-1')}><Icon icon="at"/></a>
<a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('Show HTML')}><Icon icon="file-code"/></a> <a className={styles.btn} onClick={() => this.props.onShowExport('html', 'HTML')} title={t('showHtml')}><Icon icon="file-code"/></a>
<a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('Maximize editor')}><Icon icon="window-maximize"/></a> <a className={styles.btn} onClick={::this.toggleFullscreenAsync} title={t('maximizeEditor')}><Icon icon="window-maximize"/></a>
</div> </div>
</div> </div>
<UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="mosaico/editor" tokenMethod="mosaico" tokenParams={tokenData}/> <UntrustedContentHost ref={this.contentNodeRefHandler} className={styles.host} singleToken={true} contentProps={editorData} contentSrc="mosaico/editor" tokenMethod="mosaico" tokenParams={tokenData}/>

View file

@ -244,7 +244,7 @@ export class UntrustedContentRoot extends Component {
} else { } else {
return ( return (
<div className="sandbox-loading-message"> <div className="sandbox-loading-message">
{t('loading-1')} {t('loading')}
</div> </div>
); );
} }

View file

@ -137,17 +137,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/lists', 'success', t('List updated')); this.navigateToWithFlashMessage('/lists', 'success', t('listUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/lists/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/lists/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('List updated')); this.setFormStatusMessage('success', t('listUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/lists', 'success', t('List created')); this.navigateToWithFlashMessage('/lists', 'success', t('listCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/lists/${submitResult}/edit`, 'success', t('List created')); this.navigateToWithFlashMessage(`/lists/${submitResult}/edit`, 'success', t('listCreated'));
} }
} }
} else { } else {
@ -215,14 +215,14 @@ export default class CUD extends Component {
toNameFields = <InputField id="to_name" label={t('recipientsNameTemplate')} help={t('specifyUsingMergeTagsOfThisListHowTo')}/>; toNameFields = <InputField id="to_name" label={t('recipientsNameTemplate')} help={t('specifyUsingMergeTagsOfThisListHowTo')}/>;
} else { } else {
const fieldWizardOptions = [ const fieldWizardOptions = [
{key: FieldWizard.NONE, label: t('Empty / Custom (no fields)')}, {key: FieldWizard.NONE, label: t('emptyCustomNoFields')},
{key: FieldWizard.NAME, label: t('Name (one field)')}, {key: FieldWizard.NAME, label: t('nameOneField')},
{key: FieldWizard.FIRST_LAST_NAME, label: t('First name and Last name (two fields)')}, {key: FieldWizard.FIRST_LAST_NAME, label: t('firstNameAndLastNameTwoFields')},
]; ];
const fieldWizardValue = this.getFormValue('fieldWizard'); const fieldWizardValue = this.getFormValue('fieldWizard');
const fieldWizardSelector = <Dropdown id="fieldWizard" label={t('Representation of subscriber\'s name')} options={fieldWizardOptions} help={t('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.')}/> const fieldWizardSelector = <Dropdown id="fieldWizard" label={t('representationOfSubscribersName')} options={fieldWizardOptions} help={t('selectHowTheNameOfASubscriberWillBe')}/>
if (fieldWizardValue === FieldWizard.NONE) { if (fieldWizardValue === FieldWizard.NONE) {
toNameFields = ( toNameFields = (
@ -282,8 +282,8 @@ export default class CUD extends Component {
<CheckBox id="listunsubscribe_disabled" label={t('unsubscribeHeader')} text={t('doNotSendListUnsubscribeHeaders')}/> <CheckBox id="listunsubscribe_disabled" label={t('unsubscribeHeader')} text={t('doNotSendListUnsubscribeHeaders')}/>
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.entity.id}/delete`}/>} {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -310,17 +310,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/fields`, 'success', t('Field updated')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/fields`, 'success', t('fieldUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/fields/${this.props.list.id}/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/fields/${this.props.list.id}/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Field updated')); this.setFormStatusMessage('success', t('fieldUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/fields`, 'success', t('Field created')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/fields`, 'success', t('fieldCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/fields/${submitResult}/edit`, 'success', t('Field created')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/fields/${submitResult}/edit`, 'success', t('fieldCreated'));
} }
} }
} else { } else {
@ -459,14 +459,14 @@ export default class CUD extends Component {
fieldSettings = fieldSettings =
<Fieldset label={t('fieldSettings')}> <Fieldset label={t('fieldSettings')}>
<CheckBox id="isInGroup" label={t('group')} text={t('Belongs to checkbox / dropdown / radio group')}/> <CheckBox id="isInGroup" label={t('group')} text={t('belongsToCheckboxDropdownRadioGroup')}/>
{isInGroup && {isInGroup &&
<TableSelect id="group" label={t('Containing group')} withHeader dropdown dataUrl={`rest/fields-grouped-table/${this.props.list.id}`} columns={fieldsGroupedColumns} selectionLabelIndex={1} help={t('selectGroupToWhichTheOptionsShouldBelong')}/> <TableSelect id="group" label={t('containingGroup')} withHeader dropdown dataUrl={`rest/fields-grouped-table/${this.props.list.id}`} columns={fieldsGroupedColumns} selectionLabelIndex={1} help={t('selectGroupToWhichTheOptionsShouldBelong')}/>
} }
{!isInGroup && {!isInGroup &&
<> <>
<InputField id="checkedLabel" label={t('Checked label')} help={t('Label that will be displayed in list and subscription when the option is checked')}/> <InputField id="checkedLabel" label={t('checkedLabel')} help={t('labelThatWillBeDisplayedInListAnd')}/>
<InputField id="uncheckedLabel" label={t('Unchecked label')} help={t('Label that will be displayed in list and subscription when the option is unchecked')}/> <InputField id="uncheckedLabel" label={t('uncheckedLabel')} help={t('labelThatWillBeDisplayedInListAnd-1')}/>
</> </>
} }
<InputField id="default_value" label={t('defaultValue')} help={t('defaultValueUsedWhenTheFieldIsEmpty')}/> <InputField id="default_value" label={t('defaultValue')} help={t('defaultValueUsedWhenTheFieldIsEmpty')}/>
@ -512,8 +512,8 @@ export default class CUD extends Component {
} }
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.list.id}/fields/${this.props.entity.id}/delete`}/>} {isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.list.id}/fields/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -402,17 +402,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/lists/forms', 'success', t('Custom forms updated')); this.navigateToWithFlashMessage('/lists/forms', 'success', t('customFormsUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/forms/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/forms/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Custom forms updated')); this.setFormStatusMessage('success', t('customFormsUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/lists/forms', 'success', t('Custom forms created')); this.navigateToWithFlashMessage('/lists/forms', 'success', t('customFormsCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/lists/forms/${submitResult}/edit`, 'success', t('Custom forms created')); this.navigateToWithFlashMessage(`/lists/forms/${submitResult}/edit`, 'success', t('customFormsCreated'));
} }
} }
} else { } else {
@ -533,9 +533,9 @@ export default class CUD extends Component {
<div className={formsStyles.title}>{t('formPreview') + ' ' + this.state.previewLabel}</div> <div className={formsStyles.title}>{t('formPreview') + ' ' + this.state.previewLabel}</div>
</div> </div>
<div className={formsStyles.navbarRight}> <div className={formsStyles.navbarRight}>
<a className={formsStyles.btn} onClick={() => this.preview(this.state.previewKey)} title={t('Refresh')}><Icon icon="sync-alt"/></a> <a className={formsStyles.btn} onClick={() => this.preview(this.state.previewKey)} title={t('refresh')}><Icon icon="sync-alt"/></a>
<a className={formsStyles.btn} onClick={() => this.setState({previewFullscreen: !this.state.previewFullscreen})} title={t('Maximize editor')}><Icon icon="window-maximize"/></a> <a className={formsStyles.btn} onClick={() => this.setState({previewFullscreen: !this.state.previewFullscreen})} title={t('maximizeEditor')}><Icon icon="window-maximize"/></a>
<a className={formsStyles.btn} onClick={() => this.setState({previewContents: null, previewFullscreen: false})} title={t('Close preview')}><Icon icon="window-close"/></a> <a className={formsStyles.btn} onClick={() => this.setState({previewContents: null, previewFullscreen: false})} title={t('closePreview')}><Icon icon="window-close"/></a>
</div> </div>
</div> </div>
<iframe className={formsStyles.host} src={"data:text/html;charset=utf-8," + encodeURIComponent(this.state.previewContents)}></iframe> <iframe className={formsStyles.host} src={"data:text/html;charset=utf-8," + encodeURIComponent(this.state.previewContents)}></iframe>
@ -553,8 +553,8 @@ export default class CUD extends Component {
} }
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/forms/${this.props.entity.id}/delete`}/>} {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/forms/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -173,18 +173,18 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/segments`, 'success', t('Segment updated')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/segments`, 'success', t('segmentUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/segments/${this.props.list.id}/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/segments/${this.props.list.id}/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Segment updated')); this.setFormStatusMessage('success', t('segmentUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/segments`, 'success', t('Segment created')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/segments`, 'success', t('segmentCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/segments/${submitResult}/edit`, 'success', t('Segment created')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/segments/${submitResult}/edit`, 'success', t('segmentCreated'));
} }
} }
} else { } else {
@ -389,7 +389,7 @@ export default class CUD extends Component {
<hr/> <hr/>
<ButtonRow format="wide" className={`col-12 ${styles.toolbar}`}> <ButtonRow format="wide" className={`col-12 ${styles.toolbar}`}>
<Button type="submit" className="btn-primary" icon="check" label={t('save')} onClickAsync={async () => await this.submitHandler(false)}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')} onClickAsync={async () => await this.submitHandler(false)}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.list.id}/segments/${this.props.entity.id}/delete`}/> } {isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.list.id}/segments/${this.props.entity.id}/delete`}/> }
</ButtonRow> </ButtonRow>

View file

@ -63,7 +63,7 @@ export default class List extends Component {
</Toolbar> </Toolbar>
} }
<Title>{t('Segments')}</Title> <Title>{t('segments')}</Title>
<Table ref={node => this.table = node} withHeader dataUrl={`rest/segments-table/${this.props.list.id}`} columns={columns} /> <Table ref={node => this.table = node} withHeader dataUrl={`rest/segments-table/${this.props.list.id}`} columns={columns} />
</div> </div>

View file

@ -409,7 +409,7 @@ export function getRuleHelpers(t, fields) {
}, },
{ {
column: 'is_test', column: 'is_test',
name: t('Test user'), name: t('testUser'),
type: 'option' type: 'option'
} }
]; ];

View file

@ -144,17 +144,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/subscriptions`, 'success', t('Subscription updated')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/subscriptions`, 'success', t('subscriptionUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/subscriptions/${this.props.list.id}/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/subscriptions/${this.props.list.id}/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Subscription updated')); this.setFormStatusMessage('success', t('subscriptionUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/subscriptions`, 'success', t('Subscription created')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/subscriptions`, 'success', t('subscriptionCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/subscriptions/${submitResult}/edit`, 'success', t('Subscription created')); this.navigateToWithFlashMessage(`/lists/${this.props.list.id}/subscriptions/${submitResult}/edit`, 'success', t('subscriptionCreated'));
} }
} }
} else { } else {
@ -237,8 +237,8 @@ export default class CUD extends Component {
</AlignedRow> </AlignedRow>
} }
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.list.id}/subscriptions/${this.props.entity.id}/delete`}/>} {isEdit && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/lists/${this.props.list.id}/subscriptions/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -143,19 +143,19 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/namespaces', 'success', t('Namespace updated')); this.navigateToWithFlashMessage('/namespaces', 'success', t('namespaceUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/namespaces/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/namespaces/${this.props.entity.id}`);
await this.loadTreeData(); await this.loadTreeData();
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Namespace updated')); this.setFormStatusMessage('success', t('namespaceUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/namespaces', 'success', t('Namespace created')); this.navigateToWithFlashMessage('/namespaces', 'success', t('namespaceCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/namespaces/${submitResult}/edit`, 'success', t('Namespace created')); this.navigateToWithFlashMessage(`/namespaces/${submitResult}/edit`, 'success', t('namespaceCreated'));
} }
} }
} else { } else {
@ -216,8 +216,8 @@ export default class CUD extends Component {
<TreeTableSelect id="namespace" label={t('parentNamespace')} data={this.state.treeData}/>} <TreeTableSelect id="namespace" label={t('parentNamespace')} data={this.state.treeData}/>}
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/namespaces/${this.props.entity.id}/delete`}/>} {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/namespaces/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -174,17 +174,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/reports', 'success', t('Report updated')); this.navigateToWithFlashMessage('/reports', 'success', t('reportUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/reports/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/reports/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Report updated')); this.setFormStatusMessage('success', t('reportUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/reports', 'success', t('Report created')); this.navigateToWithFlashMessage('/reports', 'success', t('reportCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/reports/${submitResult}/edit`, 'success', t('Report created')); this.navigateToWithFlashMessage(`/reports/${submitResult}/edit`, 'success', t('reportCreated'));
} }
} }
} else { } else {
@ -281,8 +281,8 @@ export default class CUD extends Component {
} }
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && {canDelete &&
<LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/reports/${this.props.entity.id}/delete`}/> <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/reports/${this.props.entity.id}/delete`}/>
} }

View file

@ -32,7 +32,7 @@ export default class ViewAndOutput extends Component {
this.viewTypes = { this.viewTypes = {
view: { view: {
url: 'rest/report-content', url: 'rest/report-content',
getTitle: name => t('reportName', { name }), getTitle: name => t('reportName-1', { name }),
loading: t('loadingReport'), loading: t('loadingReport'),
finishedStates: new Set([ReportState.FINISHED]), finishedStates: new Set([ReportState.FINISHED]),
getContent: content => <div dangerouslySetInnerHTML={{ __html: content }}/> getContent: content => <div dangerouslySetInnerHTML={{ __html: content }}/>

View file

@ -20,7 +20,7 @@ function getMenus(t) {
panelComponent: ReportsList, panelComponent: ReportsList,
children: { children: {
':reportId([0-9]+)': { ':reportId([0-9]+)': {
title: resolved => t('reportName-1', {name: ellipsizeBreadcrumbLabel(resolved.report.name)}), title: resolved => t('reportName', {name: ellipsizeBreadcrumbLabel(resolved.report.name)}),
resolve: { resolve: {
report: params => `rest/reports/${params.reportId}` report: params => `rest/reports/${params.reportId}`
}, },

View file

@ -273,17 +273,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/reports/templates', 'success', t('Report template updated')); this.navigateToWithFlashMessage('/reports/templates', 'success', t('reportTemplateUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/report-templates/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/report-templates/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Report template updated')); this.setFormStatusMessage('success', t('reportTemplateUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/reports/templates', 'success', t('Report template created')); this.navigateToWithFlashMessage('/reports/templates', 'success', t('reportTemplateCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/reports/templates/${submitResult}/edit`, 'success', t('Report template created')); this.navigateToWithFlashMessage(`/reports/templates/${submitResult}/edit`, 'success', t('reportTemplateCreated'));
} }
} }
} else { } else {
@ -322,8 +322,8 @@ export default class CUD extends Component {
<ACEEditor id="hbs" height="700px" mode="handlebars" label={t('renderingTemplate')} help={<Trans i18nKey="useHtmlWithHandlebarsSyntaxSee">Use HTML with Handlebars syntax. See documentation <a href="http://handlebarsjs.com/">here</a>.</Trans>}/> <ACEEditor id="hbs" height="700px" mode="handlebars" label={t('renderingTemplate')} help={<Trans i18nKey="useHtmlWithHandlebarsSyntaxSee">Use HTML with Handlebars syntax. See documentation <a href="http://handlebarsjs.com/">here</a>.</Trans>}/>
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && {canDelete &&
<LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/reports/templates/${this.props.entity.id}/delete`}/> <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/reports/templates/${this.props.entity.id}/delete`}/>
} }

View file

@ -166,17 +166,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/send-configurations', 'success', t('Send configuration updated')); this.navigateToWithFlashMessage('/send-configurations', 'success', t('sendConfigurationUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/send-configurations-private/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/send-configurations-private/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Send configuration updated')); this.setFormStatusMessage('success', t('sendConfigurationUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/send-configurations', 'success', t('Send configuration created')); this.navigateToWithFlashMessage('/send-configurations', 'success', t('sendConfigurationCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/send-configurations/${submitResult}/edit`, 'success', t('Send configuration created')); this.navigateToWithFlashMessage(`/send-configurations/${submitResult}/edit`, 'success', t('sendConfigurationCreated'));
} }
} }
} else { } else {
@ -259,8 +259,8 @@ export default class CUD extends Component {
<hr/> <hr/>
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && {canDelete &&
<LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/send-configurations/${this.props.entity.id}/delete`}/> <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/send-configurations/${this.props.entity.id}/delete`}/>
} }

View file

@ -124,11 +124,11 @@ export default class Share extends Component {
this.usersTableSelect.refresh(); this.usersTableSelect.refresh();
} }
}, },
{ icon: 'trash-alt', label: t('Unshare') }, { icon: 'trash-alt', label: t('unshare') },
t('Confirm Unsharing'), t('confirmUnsharing'),
t('Are you sure you want to remove the share to user "{{username}}"?', {username}), t('areYouSureYouWantToRemoveTheShareToUser', {username}),
t('Removing share for user "{{username}}"', {username}), t('removingShareForUserUsername', {username}),
t('Share for user "{{username}}" removed', {username}), t('shareForUserUsernameRemoved', {username}),
null null
); );
} }

View file

@ -62,11 +62,11 @@ export default class UserShares extends Component {
} }
} }
}, },
{ icon: 'trash-alt', label: t('Unshare') }, { icon: 'trash-alt', label: t('unshare') },
t('Confirm Unsharing'), t('confirmUnsharing'),
t('Are you sure you want to remove the sharing of the {{typeName}} "{{name}}"?', {typeName, name}), t('areYouSureYouWantToRemoveTheSharingOfThe', {typeName, name}),
t('Removing sharing of the {{typeName}} "{{name}}"', {typeName, name}), t('removingSharingOfTheTypeNameName', {typeName, name}),
t('Sharing of the {{typeName}} "{{name}}" removed', {typeName, name}), t('sharingOfTheTypeNameNameRemoved', {typeName, name}),
null null
); );
} }
@ -89,15 +89,15 @@ export default class UserShares extends Component {
{tableRestActionDialogRender(this)} {tableRestActionDialogRender(this)}
<Title>{t('sharesForUserUsername', {username: this.props.user.username})}</Title> <Title>{t('sharesForUserUsername', {username: this.props.user.username})}</Title>
{renderSharesTable('namespace', t('namespaces'), t('namespace-lc'))} {renderSharesTable('namespace', t('namespaces'), t('namespace-1'))}
{renderSharesTable('list', t('lists'), t('list-lc'))} {renderSharesTable('list', t('lists'), t('list-1'))}
{renderSharesTable('template', t('Templates'), t('template-lc'))} {renderSharesTable('template', t('templates'), t('template-1'))}
{renderSharesTable('mosaicoTemplate', t('Mosaico Templates'), t('Mosaico template'))} {renderSharesTable('mosaicoTemplate', t('mosaicoTemplates'), t('mosaicoTemplate'))}
{renderSharesTable('campaign', t('Campaigns'), t('campaign-lc'))} {renderSharesTable('campaign', t('campaigns'), t('campaign-1'))}
{renderSharesTable('customForm', t('customForms-1', t('custom forms')))} {renderSharesTable('customForm', t('customForms-1', t('customForms-2')))}
{renderSharesTable('report', t('reports'), t('report-lc'))} {renderSharesTable('report', t('reports'), t('report-1'))}
{renderSharesTable('reportTemplate', t('reportTemplates'), t('report template'))} {renderSharesTable('reportTemplate', t('reportTemplates'), t('reportTemplate-2'))}
{renderSharesTable('sendConfiguration', t('Send Configurations'), t('send configuration'))} {renderSharesTable('sendConfiguration', t('sendConfigurations-1'), t('sendConfiguration-1'))}
</div> </div>
); );
} }

View file

@ -144,7 +144,7 @@ export default class CUD extends Component {
} }
if (state.getIn(['fromSourceTemplate', 'value']) && !state.getIn(['sourceTemplate', 'value'])) { if (state.getIn(['fromSourceTemplate', 'value']) && !state.getIn(['sourceTemplate', 'value'])) {
state.setIn(['sourceTemplate', 'error'], t('Source template must not be empty')); state.setIn(['sourceTemplate', 'error'], t('sourceTemplateMustNotBeEmpty'));
} else { } else {
state.setIn(['sourceTemplate', 'error'], null); state.setIn(['sourceTemplate', 'error'], null);
} }
@ -181,17 +181,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/templates', 'success', t('Template updated')); this.navigateToWithFlashMessage('/templates', 'success', t('templateUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/templates/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/templates/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Template updated')); this.setFormStatusMessage('success', t('templateUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/templates', 'success', t('Template created')); this.navigateToWithFlashMessage('/templates', 'success', t('templateCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/templates/${submitResult}/edit`, 'success', t('Template created')); this.navigateToWithFlashMessage(`/templates/${submitResult}/edit`, 'success', t('templateCreated'));
} }
} }
} else { } else {
@ -327,7 +327,7 @@ export default class CUD extends Component {
<TextArea id="description" label={t('description')}/> <TextArea id="description" label={t('description')}/>
{!isEdit && {!isEdit &&
<CheckBox id="fromSourceTemplate" label={t('template')} text={t('Clone from an existing template')}/> <CheckBox id="fromSourceTemplate" label={t('template')} text={t('cloneFromAnExistingTemplate')}/>
} }
{this.getFormValue('fromSourceTemplate') ? {this.getFormValue('fromSourceTemplate') ?
@ -351,8 +351,8 @@ export default class CUD extends Component {
{editForm} {editForm}
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
{isEdit && <Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/>} {isEdit && <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>}
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/templates/${this.props.entity.id}/delete`}/> } {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/templates/${this.props.entity.id}/delete`}/> }
{isEdit && <Button className="btn-success" icon="at" label={t('testSend')} onClickAsync={async () => this.setState({showTestSendModal: true})}/> } {isEdit && <Button className="btn-success" icon="at" label={t('testSend')} onClickAsync={async () => this.setState({showTestSendModal: true})}/> }
</ButtonRow> </ButtonRow>

View file

@ -248,11 +248,11 @@ export function getTemplateTypes(t, prefix = '', entityTypeId = ResourceType.TEM
return <StaticField return <StaticField
id={prefix + 'grapesJSSourceType'} id={prefix + 'grapesJSSourceType'}
className={styles.formDisabled} className={styles.formDisabled}
label={t('Content')}>{grapesJSSourceTypeLabels[owner.getFormValue(prefix + 'grapesJSSourceType')]}</StaticField>; label={t('content')}>{grapesJSSourceTypeLabels[owner.getFormValue(prefix + 'grapesJSSourceType')]}</StaticField>;
} else { } else {
return <Dropdown return <Dropdown
id={prefix + 'grapesJSSourceType'} id={prefix + 'grapesJSSourceType'}
label={t('Content')} label={t('content')}
options={grapesJSSourceTypes}/>; options={grapesJSSourceTypes}/>;
} }
}, },

View file

@ -143,17 +143,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/templates/mosaico', 'success', t('Mosaico template updated')); this.navigateToWithFlashMessage('/templates/mosaico', 'success', t('mosaicoTemplateUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/mosaico-templates/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/mosaico-templates/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('Mosaico template updated')); this.setFormStatusMessage('success', t('mosaicoTemplateUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/templates/mosaico', 'success', t('Mosaico template created')); this.navigateToWithFlashMessage('/templates/mosaico', 'success', t('mosaicoTemplateCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/templates/mosaico/${submitResult}/edit`, 'success', t('Mosaico template created')); this.navigateToWithFlashMessage(`/templates/mosaico/${submitResult}/edit`, 'success', t('mosaicoTemplateCreated'));
} }
} }
} else { } else {
@ -200,7 +200,7 @@ export default class CUD extends Component {
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/templates/mosaico/${this.props.entity.id}/delete`}/>} {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('delete')} to={`/templates/mosaico/${this.props.entity.id}/delete`}/>}
{isEdit && typeKey && this.templateTypes[typeKey].getButtons(this)} {isEdit && typeKey && this.templateTypes[typeKey].getButtons(this)}
</ButtonRow> </ButtonRow>

View file

@ -105,7 +105,7 @@ export default class List extends Component {
<ButtonDropdown buttonClassName="btn-primary" menuClassName="dropdown-menu-right" label={t('createMosaicoTemplate')}> <ButtonDropdown buttonClassName="btn-primary" menuClassName="dropdown-menu-right" label={t('createMosaicoTemplate')}>
<DropdownLink to="/templates/mosaico/create">{t('blank')}</DropdownLink> <DropdownLink to="/templates/mosaico/create">{t('blank')}</DropdownLink>
<DropdownLink to="/templates/mosaico/create/versafix">{t('versafixOne')}</DropdownLink> <DropdownLink to="/templates/mosaico/create/versafix">{t('versafixOne')}</DropdownLink>
<DropdownLink to="/templates/mosaico/create/mjml-sample">{t('MJML Sample')}</DropdownLink> <DropdownLink to="/templates/mosaico/create/mjml-sample">{t('mjmlSample')}</DropdownLink>
</ButtonDropdown> </ButtonDropdown>
</Toolbar> </Toolbar>
} }

View file

@ -40,7 +40,7 @@ export function getTemplateTypes(t) {
if (res.errors.length > 0) { if (res.errors.length > 0) {
const msg = ( const msg = (
<div> <div>
<p>{t('Invalid MJML')}</p> <p>{t('invalidMjml')}</p>
<ul className={styles.errorsList}> <ul className={styles.errorsList}>
{res.errors.map((err, idx) => <li key={idx}>Line {err.line}: {err.message}</li>)} {res.errors.map((err, idx) => <li key={idx}>Line {err.line}: {err.message}</li>)}
</ul> </ul>
@ -49,11 +49,11 @@ export function getTemplateTypes(t) {
owner.setFormStatusMessage('danger', msg); owner.setFormStatusMessage('danger', msg);
} else { } else {
owner.setFormStatusMessage('success', t('MJML is valid.')); owner.setFormStatusMessage('success', t('mjmlIsValid'));
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err);
owner.setFormStatusMessage('danger', t('Invalid MJML.')); owner.setFormStatusMessage('danger', t('invalidMjml-1'));
} }
} }
@ -88,7 +88,7 @@ export function getTemplateTypes(t) {
typeName: t('mjml'), typeName: t('mjml'),
getForm: owner => ( getForm: owner => (
<> <>
<ContentModalDialog visible={!!owner.state.exportModalVisible} title={t('HTML')} getContentAsync={async () => generateHtmlFromMjml(owner)} onHide={() => setExportModalVisibility(owner, false)}/> <ContentModalDialog visible={!!owner.state.exportModalVisible} title={t('html')} getContentAsync={async () => generateHtmlFromMjml(owner)} onHide={() => setExportModalVisibility(owner, false)}/>
<ACEEditor id="mjml" height="700px" mode="xml" label={t('templateContent')}/> <ACEEditor id="mjml" height="700px" mode="xml" label={t('templateContent')}/>
</> </>
), ),
@ -105,8 +105,8 @@ export function getTemplateTypes(t) {
}, },
getButtons: owner => ( getButtons: owner => (
<> <>
<Button className="btn-success" icon="check-circle" label={t('Validate')} onClickAsync={async () => validateMjml(owner)}/> <Button className="btn-success" icon="check-circle" label={t('validate')} onClickAsync={async () => validateMjml(owner)}/>
<Button className="btn-success" icon="file-code" label={t('Show HTML')} onClickAsync={async () => setExportModalVisibility(owner, true)}/> <Button className="btn-success" icon="file-code" label={t('showHtml')} onClickAsync={async () => setExportModalVisibility(owner, true)}/>
</> </>
) )
}; };

View file

@ -174,17 +174,17 @@ export default class CUD extends Component {
if (submitResult) { if (submitResult) {
if (this.props.entity) { if (this.props.entity) {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/users', 'success', t('User updated')); this.navigateToWithFlashMessage('/users', 'success', t('userUpdated'));
} else { } else {
await this.getFormValuesFromURL(`rest/users/${this.props.entity.id}`); await this.getFormValuesFromURL(`rest/users/${this.props.entity.id}`);
this.enableForm(); this.enableForm();
this.setFormStatusMessage('success', t('User updated')); this.setFormStatusMessage('success', t('userUpdated'));
} }
} else { } else {
if (submitAndLeave) { if (submitAndLeave) {
this.navigateToWithFlashMessage('/users', 'success', t('User created')); this.navigateToWithFlashMessage('/users', 'success', t('userCreated'));
} else { } else {
this.navigateToWithFlashMessage(`/users/${submitResult}/edit`, 'success', t('User created')); this.navigateToWithFlashMessage(`/users/${submitResult}/edit`, 'success', t('userCreated'));
} }
} }
} else { } else {
@ -257,8 +257,8 @@ export default class CUD extends Component {
<NamespaceSelect/> <NamespaceSelect/>
<ButtonRow> <ButtonRow>
<Button type="submit" className="btn-primary" icon="check" label={t('Save')}/> <Button type="submit" className="btn-primary" icon="check" label={t('save')}/>
<Button type="submit" className="btn-primary" icon="check" label={t('Save and leave')} onClickAsync={async () => await this.submitHandler(true)}/> <Button type="submit" className="btn-primary" icon="check" label={t('saveAndLeave')} onClickAsync={async () => await this.submitHandler(true)}/>
{canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('deleteUser')} to={`/users/${this.props.entity.id}/delete`}/>} {canDelete && <LinkButton className="btn-danger" icon="trash-alt" label={t('deleteUser')} to={`/users/${this.props.entity.id}/delete`}/>}
</ButtonRow> </ButtonRow>
</Form> </Form>

View file

@ -1,5 +1,31 @@
{ {
"welcomeToMailtrain": "Welcome to Mailtrain...", "emailMustNotBeEmpty": "Email must not be empty.",
"invalidEmailAddress": "Invalid email address.",
"theEmailIsAlreadyAssociatedWithAnother": "The email is already associated with another user in the system.",
"validationIsInProgress": "Validation is in progress...",
"fullNameMustNotBeEmpty": "Full name must not be empty",
"currentPasswordMustNotBeEmpty": "Current password must not be empty.",
"incorrectPassword": "Incorrect password.",
"passwordsMustMatch": "Passwords must match",
"updatingUserProfile": "Updating user profile ...",
"userProfileUpdated": "User profile updated",
"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",
"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</1>.",
"personalAccessToken": "Personal access token", "personalAccessToken": "Personal access token",
"accessTokenNotYetGenerated": "Access token not yet generated", "accessTokenNotYetGenerated": "Access token not yet generated",
"api": "API", "api": "API",
@ -46,63 +72,16 @@
"thisApiCallEitherDeleteEmailsFrom": "This API call either delete emails from blacklist", "thisApiCallEitherDeleteEmailsFrom": "This API call either delete emails from blacklist",
"getTheListsAUserHasSubscribedTo": "Get the lists a user has subscribed to", "getTheListsAUserHasSubscribedTo": "Get the lists a user has subscribed to",
"retrieveTheListsThatTheUserWithEmailHas": "Retrieve the lists that the user with :email has subscribed to.", "retrieveTheListsThatTheUserWithEmailHas": "Retrieve the lists that the user with :email has subscribed to.",
"triggerFetchOfACampaign": "Trigger fetch of a campaign",
"forcesTheRssFeedCheckToImmediatelyCheck": "Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.",
"sendTransactionalEmail": "Send transactional email",
"sendSingleEmailByTemplateWithGiven": "Send single email by template with given templateId",
"idOfConfigurationUsedToCreateMailer": "ID of configuration used to create mailer instance",
"subject": "Subject",
"dataPassedToTemplateWhenCompilingWith": "Data passed to template when compiling with Handlebars",
"mapOfTemplatesubjectVariablesToReplace": "Map of template/subject variables to replace",
"apiResponseIsAJsonStructureWithErrorAnd": "API response is a JSON structure with <1>error</1> and <3>data</3> properties. If the response <5>error</5> has a value set then the request failed.", "apiResponseIsAJsonStructureWithErrorAnd": "API response is a JSON structure with <1>error</1> and <3>data</3> properties. If the response <5>error</5> has a value set then the request failed.",
"youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type</1> when making a request. You can either use <3>application/x-www-form-urlencoded</3> for normal form data or <5>application/json</5> for a JSON payload. Using <7>multipart/form-data</7> is not supported.", "youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type</1> when making a request. You can either use <3>application/x-www-form-urlencoded</3> for normal form data or <5>application/json</5> for a JSON payload. Using <7>multipart/form-data</7> is not supported.",
"emailMustNotBeEmpty": "Email must not be empty.",
"invalidEmailAddress": "Invalid email address.",
"theEmailIsAlreadyAssociatedWithAnother": "The email is already associated with another user in the system.",
"validationIsInProgress": "Validation is in progress...",
"fullNameMustNotBeEmpty": "Full name must not be empty",
"currentPasswordMustNotBeEmpty": "Current password must not be empty.",
"incorrectPassword": "Incorrect password.",
"passwordsMustMatch": "Passwords must match",
"updatingUserProfile": "Updating user profile ...",
"userProfileUpdated": "User profile updated",
"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",
"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</1>.",
"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.",
"forgotYourPassword?": "Forgot your password?",
"signIn": "Sign in",
"username": "Username",
"password": "Password",
"rememberMe": "Remember me",
"resettingPassword": "Resetting password ...",
"passwordReset-1": "Password reset",
"yourPasswordCannotBeReset": "Your password cannot be reset.",
"thePasswordResetTokenHasExpired": "The password reset token has expired.",
"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",
"emailMustNotBeEmpty-1": "Email must not be empty", "emailMustNotBeEmpty-1": "Email must not be empty",
"theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.", "theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.",
"saving": "Saving ...", "saving": "Saving ...",
@ -116,16 +95,20 @@
"addEmailToBlacklist-1": "Add Email to Blacklist", "addEmailToBlacklist-1": "Add Email to Blacklist",
"addToBlacklist": "Add to Blacklist", "addToBlacklist": "Add to Blacklist",
"blacklistedEmails": "Blacklisted Emails", "blacklistedEmails": "Blacklisted Emails",
"campaignUpdated": "Campaign updated",
"editCustomContent": "Edit Custom Content",
"customTemplateEditor": "Custom template editor",
"save": "Save",
"saveAndLeave": "Save and leave",
"saveAndGoToStatus": "Save and go to status",
"testSend": "Test send",
"createRegularCampaign": "Create Regular Campaign", "createRegularCampaign": "Create Regular Campaign",
"sendSettings": "Send settings",
"workWithCampaignNamespace": "Work with campaign's namespace",
"createRssCampaign": "Create RSS Campaign", "createRssCampaign": "Create RSS Campaign",
"createTriggeredCampaign": "Create Triggered Campaign", "createTriggeredCampaign": "Create Triggered Campaign",
"editRegularCampaign": "Edit Regular Campaign", "editRegularCampaign": "Edit Regular Campaign",
"editRssCampaign": "Edit RSS Campaign", "editRssCampaign": "Edit RSS Campaign",
"editTriggeredCampaign": "Edit Triggered Campaign", "editTriggeredCampaign": "Edit Triggered Campaign",
"template": "Template", "template": "Template",
"template-lc": "template",
"template_plural": "Templates", "template_plural": "Templates",
"customContentClonedFromTemplate": "Custom content cloned from template", "customContentClonedFromTemplate": "Custom content cloned from template",
"customContentClonedFromAnotherCampaign": "Custom content cloned from another campaign", "customContentClonedFromAnotherCampaign": "Custom content cloned from another campaign",
@ -141,22 +124,19 @@
"rssFeedUrlMustBeGiven": "RSS feed URL must be given", "rssFeedUrlMustBeGiven": "RSS feed URL must be given",
"listMustBeSelected": "List must be selected", "listMustBeSelected": "List must be selected",
"segmentMustBeSelected": "Segment must be selected", "segmentMustBeSelected": "Segment must be selected",
"campaignSaved": "Campaign saved", "campaignCreated": "Campaign created",
"rssFeedUrl": "RSS Feed Url", "rssFeedUrl": "RSS Feed Url",
"name": "Name", "name": "Name",
"id": "ID", "id": "ID",
"subscribers": "Subscribers", "subscribers": "Subscribers",
"description": "Description", "description": "Description",
"namespace": "Namespace", "namespace": "Namespace",
"namespace-lc": "namespace",
"namespace_plural": "Namespaces", "namespace_plural": "Namespaces",
"namespaceFiltering": "Namespace filtering",
"remove": "Remove", "remove": "Remove",
"insertNewEntryBeforeThisOne": "Insert new entry before this one", "insertNewEntryBeforeThisOne": "Insert new entry before this one",
"moveUp": "Move up", "moveUp": "Move up",
"moveDown": "Move down", "moveDown": "Move down",
"list": "List", "list": "List",
"list-lc": "list",
"list_plural": "Lists", "list_plural": "Lists",
"segment": "Segment", "segment": "Segment",
"useAParticularSegment": "Use a particular segment", "useAParticularSegment": "Use a particular segment",
@ -173,30 +153,35 @@
"contentSource": "Content source", "contentSource": "Content source",
"selectingATemplateCreatesACampaign": "Selecting a template creates a campaign specific copy from it.", "selectingATemplateCreatesACampaign": "Selecting a template creates a campaign specific copy from it.",
"campaign": "Campaign", "campaign": "Campaign",
"campaign-lc": "campaign",
"campaign_plural": "Campaigns", "campaign_plural": "Campaigns",
"contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.", "contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.",
"renderUrl": "Render URL", "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.", "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.",
"save": "Save",
"saveAndEditContent": "Save and edit content",
"saveCampaignAndGoToStatus": "Save campaign and go to status",
"deletingCampaign": "Deleting campaign ...", "deletingCampaign": "Deleting campaign ...",
"campaignDeleted": "Campaign deleted", "campaignDeleted": "Campaign deleted",
"formCannotBeEditedBecauseTheCampaignIs": "Form cannot be edited because the campaign is currently being sent out. Wait till the sending is finished and refresh.", "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", "thisIsTheCampaignIdDisplayedToThe": "This is the campaign ID displayed to the subscribers",
"sendSettings": "Send settings",
"sendConfiguration": "Send configuration", "sendConfiguration": "Send configuration",
"sendConfiguration_plural": "Send configurations", "sendConfiguration_plural": "Send configurations",
"customUnsubscribeUrl": "Custom unsubscribe URL", "customUnsubscribeUrl": "Custom unsubscribe URL",
"tracking": "Tracking",
"disableOpenedTracking": "Disable opened tracking", "disableOpenedTracking": "Disable opened tracking",
"disableClickedTracking": "Disable clicked tracking", "disableClickedTracking": "Disable clicked tracking",
"saveAndEditContent": "Save and edit content",
"delete": "Delete", "delete": "Delete",
"editCustomContent": "Edit Custom Content", "regular": "Regular",
"customTemplateEditor": "Custom template editor", "triggered": "Triggered",
"testSend": "Test send", "rss": "RSS",
"idle": "Idle",
"scheduled": "Scheduled",
"paused": "Paused",
"finished": "Finished",
"inactive": "Inactive",
"active": "Active",
"sending": "Sending",
"status": "Status", "status": "Status",
"sendingScheduled": "Sending scheduled", "sendingScheduled": "Sending scheduled",
"sending": "Sending",
"statistics": "Statistics", "statistics": "Statistics",
"edit": "Edit", "edit": "Edit",
"content": "Content", "content": "Content",
@ -205,20 +190,31 @@
"triggers": "Triggers", "triggers": "Triggers",
"share": "Share", "share": "Share",
"createCampaign": "Create Campaign", "createCampaign": "Create Campaign",
"namespaceFilter": "Namespace filtering",
"regular": "Regular",
"rss": "RSS",
"triggered": "Triggered",
"campaigns": "Campaigns", "campaigns": "Campaigns",
"countries": "Countries",
"devices": "Devices",
"campaignName": "Campaign \"{{name}}\"",
"delivered": "Delivered",
"deliveredEmails": "Delivered Emails",
"complained": "Complained",
"subscribersThatComplained": "Subscribers that Complained",
"bounced": "Bounced",
"emailsThatBounced": "Emails that Bounced",
"unsubscribed": "Unsubscribed",
"subscribersThatUnsubscribed": "Subscribers that Unsubscribed",
"opened": "Opened",
"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", "campaignStatistics": "Campaign Statistics",
"total": "Total", "total": "Total",
"delivered": "Delivered",
"blacklisted": "Blacklisted", "blacklisted": "Blacklisted",
"bounced": "Bounced",
"complaints": "Complaints", "complaints": "Complaints",
"unsubscribed": "Unsubscribed",
"opened": "Opened",
"clicked": "Clicked", "clicked": "Clicked",
"quickReports": "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</1> functionality of Mailtrain.",
"uniqueVisitors": "Unique visitors", "uniqueVisitors": "Unique visitors",
"totalClicks": "Total clicks", "totalClicks": "Total clicks",
"campaignLinks": "Campaign links", "campaignLinks": "Campaign links",
@ -226,8 +222,6 @@
"listId": "List ID", "listId": "List ID",
"listNamespace": "List namespace", "listNamespace": "List namespace",
"opensCount": "Opens count", "opensCount": "Opens count",
"countries": "Countries",
"devices": "Devices",
"desktop": "Desktop", "desktop": "Desktop",
"tv": "TV", "tv": "TV",
"tablet": "Tablet", "tablet": "Tablet",
@ -251,10 +245,10 @@
"dateIsInvalid": "Date is invalid", "dateIsInvalid": "Date is invalid",
"timeMustNotBeEmpty": "Time must not be empty", "timeMustNotBeEmpty": "Time must not be empty",
"timeIsInvalid": "Time is invalid", "timeIsInvalid": "Time is invalid",
"confirmReset": "Confirm reset",
"confirmLaunch": "Confirm launch", "confirmLaunch": "Confirm launch",
"doYouWantToLaunchTheCampaign?": "Do you want to launch the campaign?",
"confirmReset": "Confirm reset",
"doYouWantToResetTheCampaign?All": "Do you want to reset the campaign? All statistics and the track of delivered messages will be lost.", "doYouWantToResetTheCampaign?All": "Do you want to reset the campaign? All statistics and the track of delivered messages will be lost.",
"doYouWantToLaunchTheCampaign?All": "Do you want to launch the campaign?",
"no": "No", "no": "No",
"yes": "Yes", "yes": "Yes",
"subscribers-1": "subscribers", "subscribers-1": "subscribers",
@ -265,7 +259,7 @@
"scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time", "scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time",
"date": "Date", "date": "Date",
"time": "Time", "time": "Time",
"enter24hourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)", "enter24HourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)",
"rescheduleSend": "Reschedule send", "rescheduleSend": "Reschedule send",
"scheduleSend": "Schedule send", "scheduleSend": "Schedule send",
"send": "Send", "send": "Send",
@ -287,27 +281,11 @@
"sendTestEmail": "Send Test Email", "sendTestEmail": "Send Test Email",
"cancel": "Cancel", "cancel": "Cancel",
"subscription": "Subscription", "subscription": "Subscription",
"idle": "Idle",
"scheduled": "Scheduled",
"paused": "Paused",
"finished": "Finished",
"inactive": "Inactive",
"active": "Active",
"campaignName": "Campaign \"{{name}}\"",
"deliveredEmails": "Delivered Emails",
"complained": "Complained",
"subscribersThatComplained": "Subscribers that Complained",
"emailsThatBounced": "Emails that Bounced",
"subscribersThatUnsubscribed": "Subscribers that Unsubscribed",
"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",
"valuesMustNotBeEmpty": "Values must not be empty", "valuesMustNotBeEmpty": "Values must not be empty",
"valueMustBeANonnegativeNumber": "Value must be a non-negative number", "valueMustBeANonnegativeNumber": "Value must be a non-negative number",
"sourceCampaignMustNotBeEmpty": "Source campaign must not be empty", "sourceCampaignMustNotBeEmpty": "Source campaign must not be empty",
"triggerSaved": "Trigger saved", "triggerUpdated": "Trigger updated",
"triggerCreated": "Trigger created",
"deletingTrigger": "Deleting trigger ...", "deletingTrigger": "Deleting trigger ...",
"triggerDeleted": "Trigger deleted", "triggerDeleted": "Trigger deleted",
"editTrigger": "Edit Trigger", "editTrigger": "Edit Trigger",
@ -318,11 +296,12 @@
"event": "Event", "event": "Event",
"selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.", "selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.",
"enabled": "Enabled", "enabled": "Enabled",
"daysAfter": "Days after",
"latestOpen": "Latest open", "latestOpen": "Latest open",
"latestClick": "Latest click", "latestClick": "Latest click",
"notOpened": "Not opened", "notOpened": "Not opened",
"notClicked": "Not clicked", "notClicked": "Not clicked",
"daysAfter": "Days after",
"welcomeToMailtrain": "Welcome to Mailtrain...",
"close": "Close", "close": "Close",
"countFileAdded": "{{count}} file added", "countFileAdded": "{{count}} file added",
"countFileAdded_plural": "{{count}} files added", "countFileAdded_plural": "{{count}} files added",
@ -342,7 +321,7 @@
"size": "Size", "size": "Size",
"download": "Download", "download": "Download",
"confirmFileDeletion": "Confirm file deletion", "confirmFileDeletion": "Confirm file deletion",
"filesareYouSureToDeleteFile": "Are you sure you want to delete the file?", "areYouSureYouWantToDeleteTheFile?": "Are you sure you want to delete the file?",
"dropCountFile": "Drop {{count}} file", "dropCountFile": "Drop {{count}} file",
"dropCountFile_plural": "Drop {{count}} files", "dropCountFile_plural": "Drop {{count}} files",
"dropFilesHere": "Drop files here", "dropFilesHere": "Drop files here",
@ -354,7 +333,6 @@
"itSeemsThatSomeoneElseHasDeletedThe-1": "It seems that someone else has deleted the entity in the meantime.", "itSeemsThatSomeoneElseHasDeletedThe-1": "It seems that someone else has deleted the entity in the meantime.",
"customForms": "Custom forms", "customForms": "Custom forms",
"report": "Report", "report": "Report",
"report-lc": "report",
"report_plural": "Reports", "report_plural": "Reports",
"reportTemplate": "Report template", "reportTemplate": "Report template",
"reportTemplate_plural": "Report templates", "reportTemplate_plural": "Report templates",
@ -364,13 +342,22 @@
"andMore": "... and more", "andMore": "... and more",
"confirmDeletion": "Confirm Deletion", "confirmDeletion": "Confirm Deletion",
"areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?", "areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?",
"namespacemustBeSelected": "Namespace must be selected", "namespaceMustBeSelected": "Namespace must be selected",
"sourceOnGitHub": "Source on GitHub",
"sendTestEmail-1": "Send test e-mail",
"showHtml": "Show HTML",
"maximizeEditor": "Maximize editor",
"mjml": "MJML", "mjml": "MJML",
"html": "HTML", "html": "HTML",
"disableWordWrap": "Disable word wrap",
"enableWordWrap": "Enable word wrap",
"hidePreview": "Hide preview",
"showPreview": "Show preview",
"showMjml": "Show MJML",
"countEntriesSelected": "{{ count }} entries selected.", "countEntriesSelected": "{{ count }} entries selected.",
"loading-1": "Loading ...",
"customFormMustBeSelected": "Custom form must be selected", "customFormMustBeSelected": "Custom form must be selected",
"listSaved": "List saved", "listUpdated": "List updated",
"listCreated": "List created",
"onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)", "onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)",
"onestepWithUnsubscriptionFormIeNoEmail": "One-step with unsubscription form (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)", "twostepIeAnEmailWithConfirmationLinkWill": "Two-step (i.e. an email with confirmation link will be sent)",
@ -378,6 +365,13 @@
"manualIeUnsubscriptionHasToBePerformedBy": "Manual (i.e. unsubscription has to be performed by the list administrator)", "manualIeUnsubscriptionHasToBePerformedBy": "Manual (i.e. unsubscription has to be performed by the list administrator)",
"defaultMailtrainForms": "Default Mailtrain Forms", "defaultMailtrainForms": "Default Mailtrain Forms",
"customFormsSelectFormBelow": "Custom Forms (select form below)", "customFormsSelectFormBelow": "Custom Forms (select form below)",
"recipientsNameTemplate": "Recipients name template",
"specifyUsingMergeTagsOfThisListHowTo": "Specify using merge tags of this list how to construct full name of the recipient. This full name is used as \"To\" header when sending emails.",
"emptyCustomNoFields": "Empty / Custom (no fields)",
"nameOneField": "Name (one field)",
"firstNameAndLastNameTwoFields": "First name and Last name (two fields)",
"representationOfSubscribersName": "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.",
"deletingList": "Deleting list ...", "deletingList": "Deleting list ...",
"listDeleted": "List deleted", "listDeleted": "List deleted",
"editList": "Edit List", "editList": "Edit List",
@ -387,8 +381,6 @@
"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.", "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", "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.", "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.",
"recipientsNameTemplate": "Recipients name template",
"specifyUsingMergeTagsOfThisListHowTo": "Specify using merge tags of this list how to construct full name of the recipient. This full name is used as \"To\" header when sending emails.",
"sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.", "sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.",
"forms": "Forms", "forms": "Forms",
"webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.", "webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.",
@ -398,10 +390,6 @@
"unsubscribeHeader": "Unsubscribe header", "unsubscribeHeader": "Unsubscribe header",
"doNotSendListUnsubscribeHeaders": "Do not send List-Unsubscribe headers", "doNotSendListUnsubscribeHeaders": "Do not send List-Unsubscribe headers",
"theCustomFormUsedForThisListYouCanCreate": "The custom form used for this list. You can create a form <1>here</1>.", "theCustomFormUsedForThisListYouCanCreate": "The custom form used for this list. You can create a form <1>here</1>.",
"fields": "Fields",
"segments": "Segments",
"imports": "Imports",
"customForms-1": "Custom Forms",
"mergeTagIsInvalidMayMustBeUppercaseAnd": "Merge tag is invalid. May must be uppercase and contain only characters A-Z, 0-9, _. It must start with a letter.", "mergeTagIsInvalidMayMustBeUppercaseAnd": "Merge tag is invalid. May must be uppercase and contain only characters A-Z, 0-9, _. It must start with a letter.",
"anotherFieldWithTheSameMergeTagExists": "Another field with the same merge tag exists. Please choose another merge tag.", "anotherFieldWithTheSameMergeTagExists": "Another field with the same merge tag exists. Please choose another merge tag.",
"groupHasToBeSelected": "Group has to be selected", "groupHasToBeSelected": "Group has to be selected",
@ -410,7 +398,8 @@
"defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date",
"defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options",
"errrorOnLineLine": "Errror on line {{ line }}", "errrorOnLineLine": "Errror on line {{ line }}",
"fieldSaved": "Field saved", "fieldUpdated": "Field updated",
"fieldCreated": "Field created",
"notVisible": "Not visible", "notVisible": "Not visible",
"endOfList": "End of list", "endOfList": "End of list",
"fieldSettings": "Field settings", "fieldSettings": "Field settings",
@ -424,7 +413,13 @@
"ddmm": "DD/MM", "ddmm": "DD/MM",
"mergeTag": "Merge Tag", "mergeTag": "Merge Tag",
"group": "Group", "group": "Group",
"belongsToCheckboxDropdownRadioGroup": "Belongs to checkbox / dropdown / radio group",
"containingGroup": "Containing group",
"selectGroupToWhichTheOptionsShouldBelong": "Select group to which the options should belong.", "selectGroupToWhichTheOptionsShouldBelong": "Select group to which the options should belong.",
"checkedLabel": "Checked label",
"labelThatWillBeDisplayedInListAnd": "Label that will be displayed in list and subscription when the option is checked",
"uncheckedLabel": "Unchecked label",
"labelThatWillBeDisplayedInListAnd-1": "Label that will be displayed in list and subscription when the option is unchecked",
"deletingField": "Deleting field ...", "deletingField": "Deleting field ...",
"fieldDeleted": "Field deleted", "fieldDeleted": "Field deleted",
"editField": "Edit Field", "editField": "Edit Field",
@ -455,6 +450,7 @@
"birthday": "Birthday", "birthday": "Birthday",
"jsonValueForCustomRendering": "JSON value for custom rendering", "jsonValueForCustomRendering": "JSON value for custom rendering",
"option": "Option", "option": "Option",
"fields": "Fields",
"thePlaintextVersionForThisEmail": "The plaintext version for this email", "thePlaintextVersionForThisEmail": "The plaintext version for this email",
"layout": "Layout", "layout": "Layout",
"formInputStyle": "Form Input Style", "formInputStyle": "Form Input Style",
@ -488,7 +484,8 @@
"unsubscribe": "Unsubscribe", "unsubscribe": "Unsubscribe",
"dataProtection": "Data protection", "dataProtection": "Data protection",
"listOfErrorsInTemplates": "List of errors in templates", "listOfErrorsInTemplates": "List of errors in templates",
"formsSaved": "Forms saved", "customFormsUpdated": "Custom forms updated",
"customFormsCreated": "Custom forms created",
"deletingForm": "Deleting form ...", "deletingForm": "Deleting form ...",
"formDeleted": "Form deleted", "formDeleted": "Form deleted",
"editCustomForms": "Edit Custom Forms", "editCustomForms": "Edit Custom Forms",
@ -498,6 +495,8 @@
"selectListWhoseFieldsWillBeUsedToPreview": "Select list whose fields will be used to preview the forms.", "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\".", "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:", "formPreview": "Form preview:",
"refresh": "Refresh",
"closePreview": "Close preview",
"templates": "Templates", "templates": "Templates",
"customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here</1>", "customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here</1>",
"createCustomForm": "Create Custom Form", "createCustomForm": "Create Custom Form",
@ -519,8 +518,19 @@
"editImport": "Edit Import", "editImport": "Edit Import",
"createImport": "Create Import", "createImport": "Create Import",
"source": "Source", "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", "lastRun": "Last run",
"detailedStatus": "Detailed status", "detailedStatus": "Detailed status",
"imports": "Imports",
"row": "Row", "row": "Row",
"reason": "Reason", "reason": "Reason",
"importRunStatus": "Import Run Status", "importRunStatus": "Import Run Status",
@ -537,20 +547,12 @@
"started": "Started", "started": "Started",
"processed": "Processed", "processed": "Processed",
"new": "New", "new": "New",
"failed": "Failed",
"importStatus": "Import Status", "importStatus": "Import Status",
"actions": "Actions", "actions": "Actions",
"start": "Start", "start": "Start",
"importRuns": "Import Runs", "importRuns": "Import Runs",
"csvFile": "CSV file", "segments": "Segments",
"preparing": "Preparing", "customForms-1": "Custom Forms",
"stopping": "Stopping",
"ready": "Ready",
"preparationFailed": "Preparation failed",
"running": "Running",
"starting": "Starting",
"basicImportOfSubscribers": "Basic import of subscribers",
"unsubscribeEmails": "Unsubscribe emails",
"listName": "List \"{{name}}\"", "listName": "List \"{{name}}\"",
"fieldName-1": "Field \"{{name}}\"", "fieldName-1": "Field \"{{name}}\"",
"segmentName": "Segment \"{{name}}\"", "segmentName": "Segment \"{{name}}\"",
@ -558,23 +560,17 @@
"run": "Run", "run": "Run",
"customFormsName": "Custom Forms \"{{name}}\"", "customFormsName": "Custom Forms \"{{name}}\"",
"newRule": "New rule", "newRule": "New rule",
"segmentSaved": "Segment saved", "segmentUpdated": "Segment updated",
"segmentCreated": "Segment created",
"deletingSegment": "Deleting segment ...", "deletingSegment": "Deleting segment ...",
"segmentDeleted": "Segment deleted", "segmentDeleted": "Segment deleted",
"editSegment": "Edit Segment", "editSegment": "Edit Segment",
"createSegment": "Create Segment", "createSegment": "Create Segment",
"saveAndStay": "Save and Stay",
"saveAndLeave": "Save and Leave",
"segmentOptions": "Segment Options", "segmentOptions": "Segment Options",
"toplevelMatchType": "Toplevel match type", "toplevelMatchType": "Toplevel match type",
"addCompositeRule": "Add Composite Rule", "addCompositeRule": "Add Composite Rule",
"addRule": "Add Rule", "addRule": "Add Rule",
"rules": "Rules", "rules": "Rules",
"fieldMustBeSelected": "Field must be selected",
"field": "Field",
"select-1": "-- Select --",
"ruleOptions": "Rule Options",
"ok": "OK",
"allRulesMustMatch": "All rules must match", "allRulesMustMatch": "All rules must match",
"atLeastOneRuleMustMatch": "At least one rule must match", "atLeastOneRuleMustMatch": "At least one rule must match",
"noRuleMayMatch": "No rule may match", "noRuleMayMatch": "No rule may match",
@ -661,8 +657,15 @@
"emailAddress-1": "Email address", "emailAddress-1": "Email address",
"signupCountry": "Signup country", "signupCountry": "Signup country",
"signUpDate": "Sign up date", "signUpDate": "Sign up date",
"testUser": "Test user",
"fieldMustBeSelected": "Field must be selected",
"field": "Field",
"select-1": "-- Select --",
"ruleOptions": "Rule Options",
"ok": "OK",
"anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.", "anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.",
"susbscriptionSaved": "Susbscription saved", "subscriptionUpdated": "Subscription updated",
"subscriptionCreated": "Subscription created",
"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.", "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", "notSelected": "Not selected",
"areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?", "areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?",
@ -674,6 +677,8 @@
"subscriptionStatus": "Subscription status", "subscriptionStatus": "Subscription status",
"testUser?": "Test user?", "testUser?": "Test user?",
"ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages", "ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages",
"subscribed": "Subscribed",
"unubscribed": "Unubscribed",
"erased": "[ERASED]", "erased": "[ERASED]",
"confirmUnsubscription": "Confirm Unsubscription", "confirmUnsubscription": "Confirm Unsubscription",
"areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?", "areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?",
@ -687,10 +692,37 @@
"subscriptionForm": "Subscription Form", "subscriptionForm": "Subscription Form",
"exportAsCsv": "Export as CSV", "exportAsCsv": "Export as CSV",
"addSubscriber": "Add Subscriber", "addSubscriber": "Add Subscriber",
"subscribed": "Subscribed", "usernameOrEmailMustNotBeEmpty": "Username or email must not be empty",
"unubscribed": "Unubscribed", "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.",
"forgotYourPassword?": "Forgot your password?",
"signIn": "Sign in",
"username": "Username",
"password": "Password",
"rememberMe": "Remember me",
"resettingPassword": "Resetting password ...",
"passwordReset-1": "Password reset",
"yourPasswordCannotBeReset": "Your password cannot be reset.",
"thePasswordResetTokenHasExpired": "The password reset token has expired.",
"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", "parentNamespaceMustBeSelected": "Parent Namespace must be selected",
"namespaceSaved": "Namespace saved", "namespaceUpdated": "Namespace updated",
"namespaceCreated": "Namespace created",
"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.", "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.", "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 ...", "deletingNamespace": "Deleting namespace ...",
@ -705,7 +737,8 @@
"atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected", "atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected",
"atMostCountItemsCanToBeSelected": "At most {{ count }} item(s) can 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.", "reportParametersAreNotSelectedWaitFor": "Report parameters are not selected. Wait for them to get displayed and then fill them in.",
"reportSaved": "Report saved", "reportUpdated": "Report updated",
"reportCreated": "Report created",
"unknownFieldTypeType": "Unknown field type \"{{type}}\"", "unknownFieldTypeType": "Unknown field type \"{{type}}\"",
"deletingReport": "Deleting report ...", "deletingReport": "Deleting report ...",
"reportDeleted": "Report deleted", "reportDeleted": "Report deleted",
@ -722,19 +755,13 @@
"viewConsoleOutput": "View console output", "viewConsoleOutput": "View console output",
"reportTemplates": "Report Templates", "reportTemplates": "Report Templates",
"reports": "Reports", "reports": "Reports",
"reportName": "Report {{name}}", "reportName": "Report \"{{name}}\"",
"loadingReport": "Loading report ...",
"outputForReportName": "Output for report {{name}}",
"loadingReportOutput": "Loading report output ...",
"reportIsBeingGenerated": "Report is being generated",
"reportNotGenerated": "Report not generated",
"refresh": "Refresh",
"reportName-1": "Report \"{{name}}\"",
"output": "Output", "output": "Output",
"templateName": "Template \"{{name}}\"", "templateName": "Template \"{{name}}\"",
"mimeTypeMustBeSelected": "MIME Type must be selected", "mimeTypeMustBeSelected": "MIME Type must be selected",
"syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification", "syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification",
"reportTemplateSaved": "Report template saved", "reportTemplateUpdated": "Report template updated",
"reportTemplateCreated": "Report template created",
"deletingReportTemplate": "Deleting report template ...", "deletingReportTemplate": "Deleting report template ...",
"reportTemplateDeleted": "Report template deleted", "reportTemplateDeleted": "Report template deleted",
"editReportTemplate": "Edit Report Template", "editReportTemplate": "Edit Report Template",
@ -750,18 +777,23 @@
"openCounts": "Open counts", "openCounts": "Open counts",
"openCountsAsCsv": "Open counts as CSV", "openCountsAsCsv": "Open counts as CSV",
"aggregatedOpenCounts": "Aggregated open counts", "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)", "current": "(current)",
"toggleNavigation": "Toggle navigation",
"administration": "Administration", "administration": "Administration",
"users": "Users", "users": "Users",
"globalSettings": "Global Settings", "globalSettings": "Global Settings",
"sendConfigurations": "Send configurations", "sendConfigurations": "Send configurations",
"logOut": "Log out", "logOut": "Log out",
"home": "Home", "home": "Home",
"sourceOnGitHub": "Source on GitHub",
"mailerTypeMustBeSelected": "Mailer type must be selected", "mailerTypeMustBeSelected": "Mailer type must be selected",
"verpHostnameMustNotBeEmpty": "VERP hostname must not be empty", "verpHostnameMustNotBeEmpty": "VERP hostname must not be empty",
"sendConfigurationSaved": "Send configuration saved", "sendConfigurationUpdated": "Send configuration updated",
"sendConfigurationCreated": "Send configuration created",
"deletingSendConfiguration": "Deleting send configuration ...", "deletingSendConfiguration": "Deleting send configuration ...",
"sendConfigurationDeleted": "Send configuration deleted", "sendConfigurationDeleted": "Send configuration deleted",
"editSendConfiguration": "Edit Send Configuration", "editSendConfiguration": "Edit Send Configuration",
@ -771,7 +803,6 @@
"overridable": "Overridable", "overridable": "Overridable",
"defaultFromName": "Default \"from\" name", "defaultFromName": "Default \"from\" name",
"defaultReplytoEmail": "Default \"reply-to\" email", "defaultReplytoEmail": "Default \"reply-to\" email",
"subject": "Subject",
"xMailer": "X-Mailer", "xMailer": "X-Mailer",
"verpBounceHandling": "VERP Bounce Handling", "verpBounceHandling": "VERP Bounce Handling",
"verpStatus": "VERP status", "verpStatus": "VERP status",
@ -784,7 +815,6 @@
"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.</0>", "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.</0>",
"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.</0>", "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.</0>",
"verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.</0>", "verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.</0>",
"sendConfigurations-1": "Send Configurations",
"labelMustNotBeEmpty": "{{label}} must not be empty", "labelMustNotBeEmpty": "{{label}} must not be empty",
"labelMustBeANumber": "{{label}} must be a number", "labelMustBeANumber": "{{label}} must be a number",
"genericSmtp": "Generic SMTP", "genericSmtp": "Generic SMTP",
@ -838,6 +868,7 @@
"region": "Region", "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.</0>", "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.</0>",
"doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.</0>", "doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.</0>",
"sendConfigurations-1": "Send Configurations",
"globalSettingsSaved": "Global settings saved", "globalSettingsSaved": "Global settings saved",
"adminEmail": "Admin email", "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.", "thisEmailIsUsedAsTheMainContactAndAsA": "This email is used as the main contact and as a default email address if no email address is specified in list settings.",
@ -863,19 +894,35 @@
"userMustNotBeEmpty": "User must not be empty", "userMustNotBeEmpty": "User must not be empty",
"roleMustBeSelected": "Role must be selected", "roleMustBeSelected": "Role must be selected",
"role": "Role", "role": "Role",
"unshare": "Unshare",
"confirmUnsharing": "Confirm Unsharing",
"areYouSureYouWantToRemoveTheShareToUser": "Are you sure you want to remove the share to user \"{{username}}\"?",
"removingShareForUserUsername": "Removing share for user \"{{username}}\"",
"shareForUserUsernameRemoved": "Share for user \"{{username}}\" removed",
"addUser": "Add User", "addUser": "Add User",
"user": "User", "user": "User",
"existingUsers": "Existing Users", "existingUsers": "Existing Users",
"areYouSureYouWantToRemoveTheSharingOfThe": "Are you sure you want to remove the sharing of the {{typeName}} \"{{name}}\"?",
"removingSharingOfTheTypeNameName": "Removing sharing of the {{typeName}} \"{{name}}\"",
"sharingOfTheTypeNameNameRemoved": "Sharing of the {{typeName}} \"{{name}}\" removed",
"sharesForUserUsername": "Shares for user \"{{username}}\"", "sharesForUserUsername": "Shares for user \"{{username}}\"",
"templateSaved": "Template saved", "namespace-1": "namespace",
"list-1": "list",
"template-1": "template",
"mosaicoTemplates": "Mosaico Templates",
"campaign-1": "campaign",
"customForms-2": "custom forms",
"report-1": "report",
"reportTemplate-2": "report template",
"sendConfiguration-1": "send configuration",
"sourceTemplateMustNotBeEmpty": "Source template must not be empty",
"templateUpdated": "Template updated",
"templateCreated": "Template created",
"deletingTemplate": "Deleting template ...", "deletingTemplate": "Deleting template ...",
"templateDeleted": "Template deleted", "templateDeleted": "Template deleted",
"editTemplate": "Edit Template", "editTemplate": "Edit Template",
"createTemplate": "Create Template", "createTemplate": "Create Template",
"saveAndEditTemplate": "Save and edit template", "cloneFromAnExistingTemplate": "Clone from an existing template",
"mosaicoTemplates": "Mosaico Templates",
"sendConfigurationHasToBeSelected": "Send configuration has to be selected.",
"listHasToBeSelected": "List has to be selected.",
"mosaico": "Mosaico", "mosaico": "Mosaico",
"templateContentHtml": "Template content (HTML)", "templateContentHtml": "Template content (HTML)",
"mosaicoTemplateDesigner": "Mosaico Template Designer", "mosaicoTemplateDesigner": "Mosaico Template Designer",
@ -895,7 +942,6 @@
"urlThatPointsToTheUnsubscribePage": "URL that points to the unsubscribe page", "urlThatPointsToTheUnsubscribePage": "URL that points to the unsubscribe page",
"urlThatPointsToThePreferencesPageOfThe": "URL that points to the preferences page of the subscriber", "urlThatPointsToThePreferencesPageOfThe": "URL that points to the preferences page of the subscriber",
"urlToPreviewTheMessageInABrowser": "URL to preview the message in a browser", "urlToPreviewTheMessageInABrowser": "URL to preview the message in a browser",
"recipientNameAsItAppearsInEmailsToHeader": "Recipient name as it appears in email's 'To' header",
"uniqueIdThatIdentifiesTheRecipient": "Unique ID that identifies the recipient", "uniqueIdThatIdentifiesTheRecipient": "Unique ID that identifies the recipient",
"uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign", "uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign",
"uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign", "uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign",
@ -907,19 +953,28 @@
"rssEntrySummary": "RSS entry summary", "rssEntrySummary": "RSS entry summary",
"rssEntryImageUrl": "RSS entry image URL", "rssEntryImageUrl": "RSS entry image URL",
"toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here</1>. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API</3>, a third party service. Their Terms of Service and Privacy Policy apply.", "toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here</1>. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API</3>, a third party service. Their Terms of Service and Privacy Policy apply.",
"mosaicoTemplateSaved": "Mosaico template saved", "mosaicoTemplateUpdated": "Mosaico template updated",
"mosaicoTemplateCreated": "Mosaico template created",
"deletingMosaicoTemplate": "Deleting Mosaico template ...", "deletingMosaicoTemplate": "Deleting Mosaico template ...",
"mosaicoTemplateDeleted": "Mosaico template deleted", "mosaicoTemplateDeleted": "Mosaico template deleted",
"editMosaicoTemplate": "Edit Mosaico Template", "editMosaicoTemplate": "Edit Mosaico Template",
"createMosaicoTemplate": "Create Mosaico Template", "createMosaicoTemplate": "Create Mosaico Template",
"invalidMjml": "Invalid MJML",
"mjmlIsValid": "MJML is valid.",
"invalidMjml-1": "Invalid MJML.",
"templateContent": "Template content",
"validate": "Validate",
"blockThumbnails": "Block thumbnails", "blockThumbnails": "Block thumbnails",
"versafixOne": "Versafix One", "versafixOne": "Versafix One",
"templateContent": "Template content", "mjmlSample": "MJML Sample",
"mosaicoTemplateName": "Mosaico Template \"{{name}}\"", "mosaicoTemplateName": "Mosaico Template \"{{name}}\"",
"theseFilesArePubliclyAvailableViaHttpSo-1": "These files are publicly available via HTTP so that they can be linked to from the Mosaico template.", "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.", "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.", "theUserNameAlreadyExistsInTheSystem": "The user name already exists in the system.",
"userSaved": "User saved", "userUpdated": "User updated",
"userCreated": "User created",
"theUsernameIsAlreadyAssignedToAnother": "The username is already assigned to another user.", "theUsernameIsAlreadyAssignedToAnother": "The username is already assigned to another user.",
"theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.", "theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.",
"deletingUser": "Deleting user ...", "deletingUser": "Deleting user ...",
@ -931,7 +986,7 @@
"deleteUser": "Delete User", "deleteUser": "Delete User",
"userName-1": "User \"{{name}}\"", "userName-1": "User \"{{name}}\"",
"shares": "Shares", "shares": "Shares",
"subscriptionconfirmed": "Subscription Confirmed", "subscriptionConfirmed": "Subscription Confirmed",
"listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered", "listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered",
"listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription", "listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription",
"pleaseConfirmSubscription": "Please Confirm Subscription", "pleaseConfirmSubscription": "Please Confirm Subscription",
@ -940,7 +995,7 @@
"invalidEmailAddressEmailMxRecordNotFound": "Invalid email address \"{{email}}\": MX record not found for domain", "invalidEmailAddressEmailMxRecordNotFound": "Invalid email address \"{{email}}\": MX record not found for domain",
"invalidEmailAddressEmailAddressDomainNot": "Invalid email address \"{{email}}\": Address domain not found", "invalidEmailAddressEmailAddressDomainNot": "Invalid email address \"{{email}}\": Address domain not found",
"invalidEmailAddressEmailAddressDomain": "Invalid email address \"{{email}}\": Address domain name is required", "invalidEmailAddressEmailAddressDomain": "Invalid email address \"{{email}}\": Address domain name is required",
"invalidEmailGeneric": "Invalid email address \"{{email}}\"", "invalidEmailAddressEmail": "Invalid email address \"{{email}}\"",
"mailerPasswordChangeRequest": "Mailer password change request", "mailerPasswordChangeRequest": "Mailer password change request",
"mailtrain": "Mailtrain", "mailtrain": "Mailtrain",
"emailAddressChanged": "Email address changed", "emailAddressChanged": "Email address changed",
@ -955,8 +1010,6 @@
"downloadSignatureVerificationKey": "Download signature verification key", "downloadSignatureVerificationKey": "Download signature verification key",
"beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;", "beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;",
"insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address <em>(optional)</em>", "insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address <em>(optional)</em>",
"warning!": "Warning!",
"javaScriptMustBeEnabledInOrderForThis": "JavaScript must be enabled in order for this form to work",
"existingEmailAddress": "Existing Email Address", "existingEmailAddress": "Existing Email Address",
"newEmailAddress": "New 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", "youWillReceiveAConfirmationRequestToYour": "You will receive a confirmation request to your new email address that you need to accept before your email is actually changed",
@ -969,10 +1022,5 @@
"thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter", "thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter",
"thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter", "thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter",
"thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number", "thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number",
"thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character", "thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character"
"templateData": "Data passed to template when compiling with Handlebars",
"templateVariables": "Map of template/subject variables to replace",
"sendTransactionalEmail": "Send transactional email",
"sendSingleEmailByTemplateId": "Send single template by :templateId",
"sendConfigurationId": "ID of configuration used to create mailer instance"
} }

View file

@ -1,5 +1,31 @@
{ {
"welcomeToMailtrain": "Welcome to Mailtrain...", "emailMustNotBeEmpty": "Email must not be empty.",
"invalidEmailAddress": "Invalid email address.",
"theEmailIsAlreadyAssociatedWithAnother": "The email is already associated with another user in the system.",
"validationIsInProgress": "Validation is in progress...",
"fullNameMustNotBeEmpty": "Full name must not be empty",
"currentPasswordMustNotBeEmpty": "Current password must not be empty.",
"incorrectPassword": "Incorrect password.",
"passwordsMustMatch": "Passwords must match",
"updatingUserProfile": "Updating user profile ...",
"userProfileUpdated": "User profile updated",
"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",
"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</1>.",
"personalAccessToken": "Personal access token", "personalAccessToken": "Personal access token",
"accessTokenNotYetGenerated": "Access token not yet generated", "accessTokenNotYetGenerated": "Access token not yet generated",
"api": "API", "api": "API",
@ -46,63 +72,16 @@
"thisApiCallEitherDeleteEmailsFrom": "This API call either delete emails from blacklist", "thisApiCallEitherDeleteEmailsFrom": "This API call either delete emails from blacklist",
"getTheListsAUserHasSubscribedTo": "Get the lists a user has subscribed to", "getTheListsAUserHasSubscribedTo": "Get the lists a user has subscribed to",
"retrieveTheListsThatTheUserWithEmailHas": "Retrieve the lists that the user with :email has subscribed to.", "retrieveTheListsThatTheUserWithEmailHas": "Retrieve the lists that the user with :email has subscribed to.",
"triggerFetchOfACampaign": "Trigger fetch of a campaign",
"forcesTheRssFeedCheckToImmediatelyCheck": "Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.",
"sendTransactionalEmail": "Send transactional email",
"sendSingleEmailByTemplateWithGiven": "Send single email by template with given templateId",
"idOfConfigurationUsedToCreateMailer": "ID of configuration used to create mailer instance",
"subject": "Subject",
"dataPassedToTemplateWhenCompilingWith": "Data passed to template when compiling with Handlebars",
"mapOfTemplatesubjectVariablesToReplace": "Map of template/subject variables to replace",
"apiResponseIsAJsonStructureWithErrorAnd": "API response is a JSON structure with <1>error</1> and <3>data</3> properties. If the response <5>error</5> has a value set then the request failed.", "apiResponseIsAJsonStructureWithErrorAnd": "API response is a JSON structure with <1>error</1> and <3>data</3> properties. If the response <5>error</5> has a value set then the request failed.",
"youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type</1> when making a request. You can either use <3>application/x-www-form-urlencoded</3> for normal form data or <5>application/json</5> for a JSON payload. Using <7>multipart/form-data</7> is not supported.", "youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type</1> when making a request. You can either use <3>application/x-www-form-urlencoded</3> for normal form data or <5>application/json</5> for a JSON payload. Using <7>multipart/form-data</7> is not supported.",
"emailMustNotBeEmpty": "Email must not be empty.",
"invalidEmailAddress": "Invalid email address.",
"theEmailIsAlreadyAssociatedWithAnother": "The email is already associated with another user in the system.",
"validationIsInProgress": "Validation is in progress...",
"fullNameMustNotBeEmpty": "Full name must not be empty",
"currentPasswordMustNotBeEmpty": "Current password must not be empty.",
"incorrectPassword": "Incorrect password.",
"passwordsMustMatch": "Passwords must match",
"updatingUserProfile": "Updating user profile ...",
"userProfileUpdated": "User profile updated",
"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",
"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</1>.",
"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.",
"forgotYourPassword?": "Forgot your password?",
"signIn": "Sign in",
"username": "Username",
"password": "Password",
"rememberMe": "Remember me",
"resettingPassword": "Resetting password ...",
"passwordReset-1": "Password reset",
"yourPasswordCannotBeReset": "Your password cannot be reset.",
"thePasswordResetTokenHasExpired": "The password reset token has expired.",
"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",
"emailMustNotBeEmpty-1": "Email must not be empty", "emailMustNotBeEmpty-1": "Email must not be empty",
"theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.", "theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.",
"saving": "Saving ...", "saving": "Saving ...",
@ -116,16 +95,20 @@
"addEmailToBlacklist-1": "Add Email to Blacklist", "addEmailToBlacklist-1": "Add Email to Blacklist",
"addToBlacklist": "Add to Blacklist", "addToBlacklist": "Add to Blacklist",
"blacklistedEmails": "Blacklisted Emails", "blacklistedEmails": "Blacklisted Emails",
"campaignUpdated": "Campaign updated",
"editCustomContent": "Edit Custom Content",
"customTemplateEditor": "Custom template editor",
"save": "Save",
"saveAndLeave": "Save and leave",
"saveAndGoToStatus": "Save and go to status",
"testSend": "Test send",
"createRegularCampaign": "Create Regular Campaign", "createRegularCampaign": "Create Regular Campaign",
"sendSettings": "Send settings",
"workWithCampaignNamespace": "Work with campaign's namespace",
"createRssCampaign": "Create RSS Campaign", "createRssCampaign": "Create RSS Campaign",
"createTriggeredCampaign": "Create Triggered Campaign", "createTriggeredCampaign": "Create Triggered Campaign",
"editRegularCampaign": "Edit Regular Campaign", "editRegularCampaign": "Edit Regular Campaign",
"editRssCampaign": "Edit RSS Campaign", "editRssCampaign": "Edit RSS Campaign",
"editTriggeredCampaign": "Edit Triggered Campaign", "editTriggeredCampaign": "Edit Triggered Campaign",
"template": "Template", "template": "Template",
"template-lc": "template",
"template_plural": "Templates", "template_plural": "Templates",
"customContentClonedFromTemplate": "Custom content cloned from template", "customContentClonedFromTemplate": "Custom content cloned from template",
"customContentClonedFromAnotherCampaign": "Custom content cloned from another campaign", "customContentClonedFromAnotherCampaign": "Custom content cloned from another campaign",
@ -141,22 +124,19 @@
"rssFeedUrlMustBeGiven": "RSS feed URL must be given", "rssFeedUrlMustBeGiven": "RSS feed URL must be given",
"listMustBeSelected": "List must be selected", "listMustBeSelected": "List must be selected",
"segmentMustBeSelected": "Segment must be selected", "segmentMustBeSelected": "Segment must be selected",
"campaignSaved": "Campaign saved", "campaignCreated": "Campaign created",
"rssFeedUrl": "RSS Feed Url", "rssFeedUrl": "RSS Feed Url",
"name": "Name", "name": "Name",
"id": "ID", "id": "ID",
"subscribers": "Subscribers", "subscribers": "Subscribers",
"description": "Description", "description": "Description",
"namespace": "Namespace", "namespace": "Namespace",
"namespace-lc": "namespace",
"namespace_plural": "Namespaces", "namespace_plural": "Namespaces",
"namespaceFiltering": "Namespace filtering",
"remove": "Remove", "remove": "Remove",
"insertNewEntryBeforeThisOne": "Insert new entry before this one", "insertNewEntryBeforeThisOne": "Insert new entry before this one",
"moveUp": "Move up", "moveUp": "Move up",
"moveDown": "Move down", "moveDown": "Move down",
"list": "List", "list": "List",
"list-lc": "list",
"list_plural": "Lists", "list_plural": "Lists",
"segment": "Segment", "segment": "Segment",
"useAParticularSegment": "Use a particular segment", "useAParticularSegment": "Use a particular segment",
@ -173,30 +153,35 @@
"contentSource": "Content source", "contentSource": "Content source",
"selectingATemplateCreatesACampaign": "Selecting a template creates a campaign specific copy from it.", "selectingATemplateCreatesACampaign": "Selecting a template creates a campaign specific copy from it.",
"campaign": "Campaign", "campaign": "Campaign",
"campaign-lc": "campaign",
"campaign_plural": "Campaigns", "campaign_plural": "Campaigns",
"contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.", "contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.",
"renderUrl": "Render URL", "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.", "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.",
"save": "Save",
"saveAndEditContent": "Save and edit content",
"saveCampaignAndGoToStatus": "Save campaign and go to status",
"deletingCampaign": "Deleting campaign ...", "deletingCampaign": "Deleting campaign ...",
"campaignDeleted": "Campaign deleted", "campaignDeleted": "Campaign deleted",
"formCannotBeEditedBecauseTheCampaignIs": "Form cannot be edited because the campaign is currently being sent out. Wait till the sending is finished and refresh.", "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", "thisIsTheCampaignIdDisplayedToThe": "This is the campaign ID displayed to the subscribers",
"sendSettings": "Send settings",
"sendConfiguration": "Send configuration", "sendConfiguration": "Send configuration",
"sendConfiguration_plural": "Send configurations", "sendConfiguration_plural": "Send configurations",
"customUnsubscribeUrl": "Custom unsubscribe URL", "customUnsubscribeUrl": "Custom unsubscribe URL",
"tracking": "Tracking",
"disableOpenedTracking": "Disable opened tracking", "disableOpenedTracking": "Disable opened tracking",
"disableClickedTracking": "Disable clicked tracking", "disableClickedTracking": "Disable clicked tracking",
"saveAndEditContent": "Save and edit content",
"delete": "Delete", "delete": "Delete",
"editCustomContent": "Edit Custom Content", "regular": "Regular",
"customTemplateEditor": "Custom template editor", "triggered": "Triggered",
"testSend": "Test send", "rss": "RSS",
"idle": "Idle",
"scheduled": "Scheduled",
"paused": "Paused",
"finished": "Finished",
"inactive": "Inactive",
"active": "Active",
"sending": "Sending",
"status": "Status", "status": "Status",
"sendingScheduled": "Sending scheduled", "sendingScheduled": "Sending scheduled",
"sending": "Sending",
"statistics": "Statistics", "statistics": "Statistics",
"edit": "Edit", "edit": "Edit",
"content": "Content", "content": "Content",
@ -205,20 +190,31 @@
"triggers": "Triggers", "triggers": "Triggers",
"share": "Share", "share": "Share",
"createCampaign": "Create Campaign", "createCampaign": "Create Campaign",
"namespaceFilter": "Namespace filtering",
"regular": "Regular",
"rss": "RSS",
"triggered": "Triggered",
"campaigns": "Campaigns", "campaigns": "Campaigns",
"countries": "Countries",
"devices": "Devices",
"campaignName": "Campaign \"{{name}}\"",
"delivered": "Delivered",
"deliveredEmails": "Delivered Emails",
"complained": "Complained",
"subscribersThatComplained": "Subscribers that Complained",
"bounced": "Bounced",
"emailsThatBounced": "Emails that Bounced",
"unsubscribed": "Unsubscribed",
"subscribersThatUnsubscribed": "Subscribers that Unsubscribed",
"opened": "Opened",
"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", "campaignStatistics": "Campaign Statistics",
"total": "Total", "total": "Total",
"delivered": "Delivered",
"blacklisted": "Blacklisted", "blacklisted": "Blacklisted",
"bounced": "Bounced",
"complaints": "Complaints", "complaints": "Complaints",
"unsubscribed": "Unsubscribed",
"opened": "Opened",
"clicked": "Clicked", "clicked": "Clicked",
"quickReports": "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</1> functionality of Mailtrain.",
"uniqueVisitors": "Unique visitors", "uniqueVisitors": "Unique visitors",
"totalClicks": "Total clicks", "totalClicks": "Total clicks",
"campaignLinks": "Campaign links", "campaignLinks": "Campaign links",
@ -226,8 +222,6 @@
"listId": "List ID", "listId": "List ID",
"listNamespace": "List namespace", "listNamespace": "List namespace",
"opensCount": "Opens count", "opensCount": "Opens count",
"countries": "Countries",
"devices": "Devices",
"desktop": "Desktop", "desktop": "Desktop",
"tv": "TV", "tv": "TV",
"tablet": "Tablet", "tablet": "Tablet",
@ -251,10 +245,10 @@
"dateIsInvalid": "Date is invalid", "dateIsInvalid": "Date is invalid",
"timeMustNotBeEmpty": "Time must not be empty", "timeMustNotBeEmpty": "Time must not be empty",
"timeIsInvalid": "Time is invalid", "timeIsInvalid": "Time is invalid",
"confirmReset": "Confirm reset",
"confirmLaunch": "Confirm launch", "confirmLaunch": "Confirm launch",
"doYouWantToLaunchTheCampaign?": "Do you want to launch the campaign?",
"confirmReset": "Confirm reset",
"doYouWantToResetTheCampaign?All": "Do you want to reset the campaign? All statistics and the track of delivered messages will be lost.", "doYouWantToResetTheCampaign?All": "Do you want to reset the campaign? All statistics and the track of delivered messages will be lost.",
"doYouWantToLaunchTheCampaign?All": "Do you want to launch the campaign?",
"no": "No", "no": "No",
"yes": "Yes", "yes": "Yes",
"subscribers-1": "subscribers", "subscribers-1": "subscribers",
@ -265,7 +259,7 @@
"scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time", "scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time",
"date": "Date", "date": "Date",
"time": "Time", "time": "Time",
"enter24hourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)", "enter24HourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)",
"rescheduleSend": "Reschedule send", "rescheduleSend": "Reschedule send",
"scheduleSend": "Schedule send", "scheduleSend": "Schedule send",
"send": "Send", "send": "Send",
@ -287,27 +281,11 @@
"sendTestEmail": "Send Test Email", "sendTestEmail": "Send Test Email",
"cancel": "Cancel", "cancel": "Cancel",
"subscription": "Subscription", "subscription": "Subscription",
"idle": "Idle",
"scheduled": "Scheduled",
"paused": "Paused",
"finished": "Finished",
"inactive": "Inactive",
"active": "Active",
"campaignName": "Campaign \"{{name}}\"",
"deliveredEmails": "Delivered Emails",
"complained": "Complained",
"subscribersThatComplained": "Subscribers that Complained",
"emailsThatBounced": "Emails that Bounced",
"subscribersThatUnsubscribed": "Subscribers that Unsubscribed",
"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",
"valuesMustNotBeEmpty": "Values must not be empty", "valuesMustNotBeEmpty": "Values must not be empty",
"valueMustBeANonnegativeNumber": "Value must be a non-negative number", "valueMustBeANonnegativeNumber": "Value must be a non-negative number",
"sourceCampaignMustNotBeEmpty": "Source campaign must not be empty", "sourceCampaignMustNotBeEmpty": "Source campaign must not be empty",
"triggerSaved": "Trigger saved", "triggerUpdated": "Trigger updated",
"triggerCreated": "Trigger created",
"deletingTrigger": "Deleting trigger ...", "deletingTrigger": "Deleting trigger ...",
"triggerDeleted": "Trigger deleted", "triggerDeleted": "Trigger deleted",
"editTrigger": "Edit Trigger", "editTrigger": "Edit Trigger",
@ -318,11 +296,12 @@
"event": "Event", "event": "Event",
"selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.", "selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.",
"enabled": "Enabled", "enabled": "Enabled",
"daysAfter": "Days after",
"latestOpen": "Latest open", "latestOpen": "Latest open",
"latestClick": "Latest click", "latestClick": "Latest click",
"notOpened": "Not opened", "notOpened": "Not opened",
"notClicked": "Not clicked", "notClicked": "Not clicked",
"daysAfter": "Days after",
"welcomeToMailtrain": "Welcome to Mailtrain...",
"close": "Close", "close": "Close",
"countFileAdded": "{{count}} file added", "countFileAdded": "{{count}} file added",
"countFileAdded_plural": "{{count}} files added", "countFileAdded_plural": "{{count}} files added",
@ -342,7 +321,7 @@
"size": "Size", "size": "Size",
"download": "Download", "download": "Download",
"confirmFileDeletion": "Confirm file deletion", "confirmFileDeletion": "Confirm file deletion",
"filesareYouSureToDeleteFile": "Are you sure you want to delete the file?", "areYouSureYouWantToDeleteTheFile?": "Are you sure you want to delete the file?",
"dropCountFile": "Drop {{count}} file", "dropCountFile": "Drop {{count}} file",
"dropCountFile_plural": "Drop {{count}} files", "dropCountFile_plural": "Drop {{count}} files",
"dropFilesHere": "Drop files here", "dropFilesHere": "Drop files here",
@ -354,7 +333,6 @@
"itSeemsThatSomeoneElseHasDeletedThe-1": "It seems that someone else has deleted the entity in the meantime.", "itSeemsThatSomeoneElseHasDeletedThe-1": "It seems that someone else has deleted the entity in the meantime.",
"customForms": "Custom forms", "customForms": "Custom forms",
"report": "Report", "report": "Report",
"report-lc": "report",
"report_plural": "Reports", "report_plural": "Reports",
"reportTemplate": "Report template", "reportTemplate": "Report template",
"reportTemplate_plural": "Report templates", "reportTemplate_plural": "Report templates",
@ -364,13 +342,22 @@
"andMore": "... and more", "andMore": "... and more",
"confirmDeletion": "Confirm Deletion", "confirmDeletion": "Confirm Deletion",
"areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?", "areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?",
"namespacemustBeSelected": "Namespace must be selected", "namespaceMustBeSelected": "Namespace must be selected",
"sourceOnGitHub": "Source on GitHub",
"sendTestEmail-1": "Send test e-mail",
"showHtml": "Show HTML",
"maximizeEditor": "Maximize editor",
"mjml": "MJML", "mjml": "MJML",
"html": "HTML", "html": "HTML",
"disableWordWrap": "Disable word wrap",
"enableWordWrap": "Enable word wrap",
"hidePreview": "Hide preview",
"showPreview": "Show preview",
"showMjml": "Show MJML",
"countEntriesSelected": "{{ count }} entries selected.", "countEntriesSelected": "{{ count }} entries selected.",
"loading-1": "Loading ...",
"customFormMustBeSelected": "Custom form must be selected", "customFormMustBeSelected": "Custom form must be selected",
"listSaved": "List saved", "listUpdated": "List updated",
"listCreated": "List created",
"onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)", "onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)",
"onestepWithUnsubscriptionFormIeNoEmail": "One-step with unsubscription form (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)", "twostepIeAnEmailWithConfirmationLinkWill": "Two-step (i.e. an email with confirmation link will be sent)",
@ -378,6 +365,13 @@
"manualIeUnsubscriptionHasToBePerformedBy": "Manual (i.e. unsubscription has to be performed by the list administrator)", "manualIeUnsubscriptionHasToBePerformedBy": "Manual (i.e. unsubscription has to be performed by the list administrator)",
"defaultMailtrainForms": "Default Mailtrain Forms", "defaultMailtrainForms": "Default Mailtrain Forms",
"customFormsSelectFormBelow": "Custom Forms (select form below)", "customFormsSelectFormBelow": "Custom Forms (select form below)",
"recipientsNameTemplate": "Recipients name template",
"specifyUsingMergeTagsOfThisListHowTo": "Specify using merge tags of this list how to construct full name of the recipient. This full name is used as \"To\" header when sending emails.",
"emptyCustomNoFields": "Empty / Custom (no fields)",
"nameOneField": "Name (one field)",
"firstNameAndLastNameTwoFields": "First name and Last name (two fields)",
"representationOfSubscribersName": "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.",
"deletingList": "Deleting list ...", "deletingList": "Deleting list ...",
"listDeleted": "List deleted", "listDeleted": "List deleted",
"editList": "Edit List", "editList": "Edit List",
@ -387,8 +381,6 @@
"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.", "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", "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.", "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.",
"recipientsNameTemplate": "Recipients name template",
"specifyUsingMergeTagsOfThisListHowTo": "Specify using merge tags of this list how to construct full name of the recipient. This full name is used as \"To\" header when sending emails.",
"sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.", "sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.",
"forms": "Forms", "forms": "Forms",
"webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.", "webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.",
@ -398,10 +390,6 @@
"unsubscribeHeader": "Unsubscribe header", "unsubscribeHeader": "Unsubscribe header",
"doNotSendListUnsubscribeHeaders": "Do not send List-Unsubscribe headers", "doNotSendListUnsubscribeHeaders": "Do not send List-Unsubscribe headers",
"theCustomFormUsedForThisListYouCanCreate": "The custom form used for this list. You can create a form <1>here</1>.", "theCustomFormUsedForThisListYouCanCreate": "The custom form used for this list. You can create a form <1>here</1>.",
"fields": "Fields",
"segments": "Segments",
"imports": "Imports",
"customForms-1": "Custom Forms",
"mergeTagIsInvalidMayMustBeUppercaseAnd": "Merge tag is invalid. May must be uppercase and contain only characters A-Z, 0-9, _. It must start with a letter.", "mergeTagIsInvalidMayMustBeUppercaseAnd": "Merge tag is invalid. May must be uppercase and contain only characters A-Z, 0-9, _. It must start with a letter.",
"anotherFieldWithTheSameMergeTagExists": "Another field with the same merge tag exists. Please choose another merge tag.", "anotherFieldWithTheSameMergeTagExists": "Another field with the same merge tag exists. Please choose another merge tag.",
"groupHasToBeSelected": "Group has to be selected", "groupHasToBeSelected": "Group has to be selected",
@ -410,7 +398,8 @@
"defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date",
"defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options",
"errrorOnLineLine": "Errror on line {{ line }}", "errrorOnLineLine": "Errror on line {{ line }}",
"fieldSaved": "Field saved", "fieldUpdated": "Field updated",
"fieldCreated": "Field created",
"notVisible": "Not visible", "notVisible": "Not visible",
"endOfList": "End of list", "endOfList": "End of list",
"fieldSettings": "Field settings", "fieldSettings": "Field settings",
@ -424,7 +413,13 @@
"ddmm": "DD/MM", "ddmm": "DD/MM",
"mergeTag": "Merge Tag", "mergeTag": "Merge Tag",
"group": "Group", "group": "Group",
"belongsToCheckboxDropdownRadioGroup": "Belongs to checkbox / dropdown / radio group",
"containingGroup": "Containing group",
"selectGroupToWhichTheOptionsShouldBelong": "Select group to which the options should belong.", "selectGroupToWhichTheOptionsShouldBelong": "Select group to which the options should belong.",
"checkedLabel": "Checked label",
"labelThatWillBeDisplayedInListAnd": "Label that will be displayed in list and subscription when the option is checked",
"uncheckedLabel": "Unchecked label",
"labelThatWillBeDisplayedInListAnd-1": "Label that will be displayed in list and subscription when the option is unchecked",
"deletingField": "Deleting field ...", "deletingField": "Deleting field ...",
"fieldDeleted": "Field deleted", "fieldDeleted": "Field deleted",
"editField": "Edit Field", "editField": "Edit Field",
@ -455,6 +450,7 @@
"birthday": "Birthday", "birthday": "Birthday",
"jsonValueForCustomRendering": "JSON value for custom rendering", "jsonValueForCustomRendering": "JSON value for custom rendering",
"option": "Option", "option": "Option",
"fields": "Fields",
"thePlaintextVersionForThisEmail": "The plaintext version for this email", "thePlaintextVersionForThisEmail": "The plaintext version for this email",
"layout": "Layout", "layout": "Layout",
"formInputStyle": "Form Input Style", "formInputStyle": "Form Input Style",
@ -488,7 +484,8 @@
"unsubscribe": "Unsubscribe", "unsubscribe": "Unsubscribe",
"dataProtection": "Data protection", "dataProtection": "Data protection",
"listOfErrorsInTemplates": "List of errors in templates", "listOfErrorsInTemplates": "List of errors in templates",
"formsSaved": "Forms saved", "customFormsUpdated": "Custom forms updated",
"customFormsCreated": "Custom forms created",
"deletingForm": "Deleting form ...", "deletingForm": "Deleting form ...",
"formDeleted": "Form deleted", "formDeleted": "Form deleted",
"editCustomForms": "Edit Custom Forms", "editCustomForms": "Edit Custom Forms",
@ -498,6 +495,8 @@
"selectListWhoseFieldsWillBeUsedToPreview": "Select list whose fields will be used to preview the forms.", "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\".", "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:", "formPreview": "Form preview:",
"refresh": "Refresh",
"closePreview": "Close preview",
"templates": "Templates", "templates": "Templates",
"customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here</1>", "customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here</1>",
"createCustomForm": "Create Custom Form", "createCustomForm": "Create Custom Form",
@ -519,8 +518,19 @@
"editImport": "Edit Import", "editImport": "Edit Import",
"createImport": "Create Import", "createImport": "Create Import",
"source": "Source", "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", "lastRun": "Last run",
"detailedStatus": "Detailed status", "detailedStatus": "Detailed status",
"imports": "Imports",
"row": "Row", "row": "Row",
"reason": "Reason", "reason": "Reason",
"importRunStatus": "Import Run Status", "importRunStatus": "Import Run Status",
@ -537,20 +547,12 @@
"started": "Started", "started": "Started",
"processed": "Processed", "processed": "Processed",
"new": "New", "new": "New",
"failed": "Failed",
"importStatus": "Import Status", "importStatus": "Import Status",
"actions": "Actions", "actions": "Actions",
"start": "Start", "start": "Start",
"importRuns": "Import Runs", "importRuns": "Import Runs",
"csvFile": "CSV file", "segments": "Segments",
"preparing": "Preparing", "customForms-1": "Custom Forms",
"stopping": "Stopping",
"ready": "Ready",
"preparationFailed": "Preparation failed",
"running": "Running",
"starting": "Starting",
"basicImportOfSubscribers": "Basic import of subscribers",
"unsubscribeEmails": "Unsubscribe emails",
"listName": "List \"{{name}}\"", "listName": "List \"{{name}}\"",
"fieldName-1": "Field \"{{name}}\"", "fieldName-1": "Field \"{{name}}\"",
"segmentName": "Segment \"{{name}}\"", "segmentName": "Segment \"{{name}}\"",
@ -558,23 +560,17 @@
"run": "Run", "run": "Run",
"customFormsName": "Custom Forms \"{{name}}\"", "customFormsName": "Custom Forms \"{{name}}\"",
"newRule": "New rule", "newRule": "New rule",
"segmentSaved": "Segment saved", "segmentUpdated": "Segment updated",
"segmentCreated": "Segment created",
"deletingSegment": "Deleting segment ...", "deletingSegment": "Deleting segment ...",
"segmentDeleted": "Segment deleted", "segmentDeleted": "Segment deleted",
"editSegment": "Edit Segment", "editSegment": "Edit Segment",
"createSegment": "Create Segment", "createSegment": "Create Segment",
"saveAndStay": "Save and Stay",
"saveAndLeave": "Save and Leave",
"segmentOptions": "Segment Options", "segmentOptions": "Segment Options",
"toplevelMatchType": "Toplevel match type", "toplevelMatchType": "Toplevel match type",
"addCompositeRule": "Add Composite Rule", "addCompositeRule": "Add Composite Rule",
"addRule": "Add Rule", "addRule": "Add Rule",
"rules": "Rules", "rules": "Rules",
"fieldMustBeSelected": "Field must be selected",
"field": "Field",
"select-1": "-- Select --",
"ruleOptions": "Rule Options",
"ok": "OK",
"allRulesMustMatch": "All rules must match", "allRulesMustMatch": "All rules must match",
"atLeastOneRuleMustMatch": "At least one rule must match", "atLeastOneRuleMustMatch": "At least one rule must match",
"noRuleMayMatch": "No rule may match", "noRuleMayMatch": "No rule may match",
@ -661,8 +657,15 @@
"emailAddress-1": "Email address", "emailAddress-1": "Email address",
"signupCountry": "Signup country", "signupCountry": "Signup country",
"signUpDate": "Sign up date", "signUpDate": "Sign up date",
"testUser": "Test user",
"fieldMustBeSelected": "Field must be selected",
"field": "Field",
"select-1": "-- Select --",
"ruleOptions": "Rule Options",
"ok": "OK",
"anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.", "anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.",
"susbscriptionSaved": "Susbscription saved", "subscriptionUpdated": "Subscription updated",
"subscriptionCreated": "Subscription created",
"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.", "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", "notSelected": "Not selected",
"areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?", "areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?",
@ -674,6 +677,8 @@
"subscriptionStatus": "Subscription status", "subscriptionStatus": "Subscription status",
"testUser?": "Test user?", "testUser?": "Test user?",
"ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages", "ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages",
"subscribed": "Subscribed",
"unubscribed": "Unubscribed",
"erased": "[ERASED]", "erased": "[ERASED]",
"confirmUnsubscription": "Confirm Unsubscription", "confirmUnsubscription": "Confirm Unsubscription",
"areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?", "areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?",
@ -687,10 +692,37 @@
"subscriptionForm": "Subscription Form", "subscriptionForm": "Subscription Form",
"exportAsCsv": "Export as CSV", "exportAsCsv": "Export as CSV",
"addSubscriber": "Add Subscriber", "addSubscriber": "Add Subscriber",
"subscribed": "Subscribed", "usernameOrEmailMustNotBeEmpty": "Username or email must not be empty",
"unubscribed": "Unubscribed", "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.",
"forgotYourPassword?": "Forgot your password?",
"signIn": "Sign in",
"username": "Username",
"password": "Password",
"rememberMe": "Remember me",
"resettingPassword": "Resetting password ...",
"passwordReset-1": "Password reset",
"yourPasswordCannotBeReset": "Your password cannot be reset.",
"thePasswordResetTokenHasExpired": "The password reset token has expired.",
"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", "parentNamespaceMustBeSelected": "Parent Namespace must be selected",
"namespaceSaved": "Namespace saved", "namespaceUpdated": "Namespace updated",
"namespaceCreated": "Namespace created",
"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.", "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.", "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 ...", "deletingNamespace": "Deleting namespace ...",
@ -705,7 +737,8 @@
"atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected", "atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected",
"atMostCountItemsCanToBeSelected": "At most {{ count }} item(s) can 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.", "reportParametersAreNotSelectedWaitFor": "Report parameters are not selected. Wait for them to get displayed and then fill them in.",
"reportSaved": "Report saved", "reportUpdated": "Report updated",
"reportCreated": "Report created",
"unknownFieldTypeType": "Unknown field type \"{{type}}\"", "unknownFieldTypeType": "Unknown field type \"{{type}}\"",
"deletingReport": "Deleting report ...", "deletingReport": "Deleting report ...",
"reportDeleted": "Report deleted", "reportDeleted": "Report deleted",
@ -722,19 +755,13 @@
"viewConsoleOutput": "View console output", "viewConsoleOutput": "View console output",
"reportTemplates": "Report Templates", "reportTemplates": "Report Templates",
"reports": "Reports", "reports": "Reports",
"reportName": "Report {{name}}", "reportName": "Report \"{{name}}\"",
"loadingReport": "Loading report ...",
"outputForReportName": "Output for report {{name}}",
"loadingReportOutput": "Loading report output ...",
"reportIsBeingGenerated": "Report is being generated",
"reportNotGenerated": "Report not generated",
"refresh": "Refresh",
"reportName-1": "Report \"{{name}}\"",
"output": "Output", "output": "Output",
"templateName": "Template \"{{name}}\"", "templateName": "Template \"{{name}}\"",
"mimeTypeMustBeSelected": "MIME Type must be selected", "mimeTypeMustBeSelected": "MIME Type must be selected",
"syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification", "syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification",
"reportTemplateSaved": "Report template saved", "reportTemplateUpdated": "Report template updated",
"reportTemplateCreated": "Report template created",
"deletingReportTemplate": "Deleting report template ...", "deletingReportTemplate": "Deleting report template ...",
"reportTemplateDeleted": "Report template deleted", "reportTemplateDeleted": "Report template deleted",
"editReportTemplate": "Edit Report Template", "editReportTemplate": "Edit Report Template",
@ -750,18 +777,23 @@
"openCounts": "Open counts", "openCounts": "Open counts",
"openCountsAsCsv": "Open counts as CSV", "openCountsAsCsv": "Open counts as CSV",
"aggregatedOpenCounts": "Aggregated open counts", "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)", "current": "(current)",
"toggleNavigation": "Toggle navigation",
"administration": "Administration", "administration": "Administration",
"users": "Users", "users": "Users",
"globalSettings": "Global Settings", "globalSettings": "Global Settings",
"sendConfigurations": "Send configurations", "sendConfigurations": "Send configurations",
"logOut": "Log out", "logOut": "Log out",
"home": "Home", "home": "Home",
"sourceOnGitHub": "Source on GitHub",
"mailerTypeMustBeSelected": "Mailer type must be selected", "mailerTypeMustBeSelected": "Mailer type must be selected",
"verpHostnameMustNotBeEmpty": "VERP hostname must not be empty", "verpHostnameMustNotBeEmpty": "VERP hostname must not be empty",
"sendConfigurationSaved": "Send configuration saved", "sendConfigurationUpdated": "Send configuration updated",
"sendConfigurationCreated": "Send configuration created",
"deletingSendConfiguration": "Deleting send configuration ...", "deletingSendConfiguration": "Deleting send configuration ...",
"sendConfigurationDeleted": "Send configuration deleted", "sendConfigurationDeleted": "Send configuration deleted",
"editSendConfiguration": "Edit Send Configuration", "editSendConfiguration": "Edit Send Configuration",
@ -771,7 +803,6 @@
"overridable": "Overridable", "overridable": "Overridable",
"defaultFromName": "Default \"from\" name", "defaultFromName": "Default \"from\" name",
"defaultReplytoEmail": "Default \"reply-to\" email", "defaultReplytoEmail": "Default \"reply-to\" email",
"subject": "Subject",
"xMailer": "X-Mailer", "xMailer": "X-Mailer",
"verpBounceHandling": "VERP Bounce Handling", "verpBounceHandling": "VERP Bounce Handling",
"verpStatus": "VERP status", "verpStatus": "VERP status",
@ -784,7 +815,6 @@
"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.</0>", "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.</0>",
"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.</0>", "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.</0>",
"verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.</0>", "verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.</0>",
"sendConfigurations-1": "Send Configurations",
"labelMustNotBeEmpty": "{{label}} must not be empty", "labelMustNotBeEmpty": "{{label}} must not be empty",
"labelMustBeANumber": "{{label}} must be a number", "labelMustBeANumber": "{{label}} must be a number",
"genericSmtp": "Generic SMTP", "genericSmtp": "Generic SMTP",
@ -838,6 +868,7 @@
"region": "Region", "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.</0>", "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.</0>",
"doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.</0>", "doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.</0>",
"sendConfigurations-1": "Send Configurations",
"globalSettingsSaved": "Global settings saved", "globalSettingsSaved": "Global settings saved",
"adminEmail": "Admin email", "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.", "thisEmailIsUsedAsTheMainContactAndAsA": "This email is used as the main contact and as a default email address if no email address is specified in list settings.",
@ -863,19 +894,35 @@
"userMustNotBeEmpty": "User must not be empty", "userMustNotBeEmpty": "User must not be empty",
"roleMustBeSelected": "Role must be selected", "roleMustBeSelected": "Role must be selected",
"role": "Role", "role": "Role",
"unshare": "Unshare",
"confirmUnsharing": "Confirm Unsharing",
"areYouSureYouWantToRemoveTheShareToUser": "Are you sure you want to remove the share to user \"{{username}}\"?",
"removingShareForUserUsername": "Removing share for user \"{{username}}\"",
"shareForUserUsernameRemoved": "Share for user \"{{username}}\" removed",
"addUser": "Add User", "addUser": "Add User",
"user": "User", "user": "User",
"existingUsers": "Existing Users", "existingUsers": "Existing Users",
"areYouSureYouWantToRemoveTheSharingOfThe": "Are you sure you want to remove the sharing of the {{typeName}} \"{{name}}\"?",
"removingSharingOfTheTypeNameName": "Removing sharing of the {{typeName}} \"{{name}}\"",
"sharingOfTheTypeNameNameRemoved": "Sharing of the {{typeName}} \"{{name}}\" removed",
"sharesForUserUsername": "Shares for user \"{{username}}\"", "sharesForUserUsername": "Shares for user \"{{username}}\"",
"templateSaved": "Template saved", "namespace-1": "namespace",
"list-1": "list",
"template-1": "template",
"mosaicoTemplates": "Mosaico Templates",
"campaign-1": "campaign",
"customForms-2": "custom forms",
"report-1": "report",
"reportTemplate-2": "report template",
"sendConfiguration-1": "send configuration",
"sourceTemplateMustNotBeEmpty": "Source template must not be empty",
"templateUpdated": "Template updated",
"templateCreated": "Template created",
"deletingTemplate": "Deleting template ...", "deletingTemplate": "Deleting template ...",
"templateDeleted": "Template deleted", "templateDeleted": "Template deleted",
"editTemplate": "Edit Template", "editTemplate": "Edit Template",
"createTemplate": "Create Template", "createTemplate": "Create Template",
"saveAndEditTemplate": "Save and edit template", "cloneFromAnExistingTemplate": "Clone from an existing template",
"mosaicoTemplates": "Mosaico Templates",
"sendConfigurationHasToBeSelected": "Send configuration has to be selected.",
"listHasToBeSelected": "List has to be selected.",
"mosaico": "Mosaico", "mosaico": "Mosaico",
"templateContentHtml": "Template content (HTML)", "templateContentHtml": "Template content (HTML)",
"mosaicoTemplateDesigner": "Mosaico Template Designer", "mosaicoTemplateDesigner": "Mosaico Template Designer",
@ -895,7 +942,6 @@
"urlThatPointsToTheUnsubscribePage": "URL that points to the unsubscribe page", "urlThatPointsToTheUnsubscribePage": "URL that points to the unsubscribe page",
"urlThatPointsToThePreferencesPageOfThe": "URL that points to the preferences page of the subscriber", "urlThatPointsToThePreferencesPageOfThe": "URL that points to the preferences page of the subscriber",
"urlToPreviewTheMessageInABrowser": "URL to preview the message in a browser", "urlToPreviewTheMessageInABrowser": "URL to preview the message in a browser",
"recipientNameAsItAppearsInEmailsToHeader": "Recipient name as it appears in email's 'To' header",
"uniqueIdThatIdentifiesTheRecipient": "Unique ID that identifies the recipient", "uniqueIdThatIdentifiesTheRecipient": "Unique ID that identifies the recipient",
"uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign", "uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign",
"uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign", "uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign",
@ -907,19 +953,28 @@
"rssEntrySummary": "RSS entry summary", "rssEntrySummary": "RSS entry summary",
"rssEntryImageUrl": "RSS entry image URL", "rssEntryImageUrl": "RSS entry image URL",
"toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here</1>. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API</3>, a third party service. Their Terms of Service and Privacy Policy apply.", "toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here</1>. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API</3>, a third party service. Their Terms of Service and Privacy Policy apply.",
"mosaicoTemplateSaved": "Mosaico template saved", "mosaicoTemplateUpdated": "Mosaico template updated",
"mosaicoTemplateCreated": "Mosaico template created",
"deletingMosaicoTemplate": "Deleting Mosaico template ...", "deletingMosaicoTemplate": "Deleting Mosaico template ...",
"mosaicoTemplateDeleted": "Mosaico template deleted", "mosaicoTemplateDeleted": "Mosaico template deleted",
"editMosaicoTemplate": "Edit Mosaico Template", "editMosaicoTemplate": "Edit Mosaico Template",
"createMosaicoTemplate": "Create Mosaico Template", "createMosaicoTemplate": "Create Mosaico Template",
"invalidMjml": "Invalid MJML",
"mjmlIsValid": "MJML is valid.",
"invalidMjml-1": "Invalid MJML.",
"templateContent": "Template content",
"validate": "Validate",
"blockThumbnails": "Block thumbnails", "blockThumbnails": "Block thumbnails",
"versafixOne": "Versafix One", "versafixOne": "Versafix One",
"templateContent": "Template content", "mjmlSample": "MJML Sample",
"mosaicoTemplateName": "Mosaico Template \"{{name}}\"", "mosaicoTemplateName": "Mosaico Template \"{{name}}\"",
"theseFilesArePubliclyAvailableViaHttpSo-1": "These files are publicly available via HTTP so that they can be linked to from the Mosaico template.", "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.", "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.", "theUserNameAlreadyExistsInTheSystem": "The user name already exists in the system.",
"userSaved": "User saved", "userUpdated": "User updated",
"userCreated": "User created",
"theUsernameIsAlreadyAssignedToAnother": "The username is already assigned to another user.", "theUsernameIsAlreadyAssignedToAnother": "The username is already assigned to another user.",
"theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.", "theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.",
"deletingUser": "Deleting user ...", "deletingUser": "Deleting user ...",
@ -931,7 +986,7 @@
"deleteUser": "Delete User", "deleteUser": "Delete User",
"userName-1": "User \"{{name}}\"", "userName-1": "User \"{{name}}\"",
"shares": "Shares", "shares": "Shares",
"subscriptionconfirmed": "Subscription Confirmed", "subscriptionConfirmed": "Subscription Confirmed",
"listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered", "listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered",
"listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription", "listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription",
"pleaseConfirmSubscription": "Please Confirm Subscription", "pleaseConfirmSubscription": "Please Confirm Subscription",
@ -940,7 +995,7 @@
"invalidEmailAddressEmailMxRecordNotFound": "Invalid email address \"{{email}}\": MX record not found for domain", "invalidEmailAddressEmailMxRecordNotFound": "Invalid email address \"{{email}}\": MX record not found for domain",
"invalidEmailAddressEmailAddressDomainNot": "Invalid email address \"{{email}}\": Address domain not found", "invalidEmailAddressEmailAddressDomainNot": "Invalid email address \"{{email}}\": Address domain not found",
"invalidEmailAddressEmailAddressDomain": "Invalid email address \"{{email}}\": Address domain name is required", "invalidEmailAddressEmailAddressDomain": "Invalid email address \"{{email}}\": Address domain name is required",
"invalidEmailGeneric": "Invalid email address \"{{email}}\"", "invalidEmailAddressEmail": "Invalid email address \"{{email}}\"",
"mailerPasswordChangeRequest": "Mailer password change request", "mailerPasswordChangeRequest": "Mailer password change request",
"mailtrain": "Mailtrain", "mailtrain": "Mailtrain",
"emailAddressChanged": "Email address changed", "emailAddressChanged": "Email address changed",
@ -955,8 +1010,6 @@
"downloadSignatureVerificationKey": "Download signature verification key", "downloadSignatureVerificationKey": "Download signature verification key",
"beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;", "beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;",
"insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address <em>(optional)</em>", "insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address <em>(optional)</em>",
"warning!": "Warning!",
"javaScriptMustBeEnabledInOrderForThis": "JavaScript must be enabled in order for this form to work",
"existingEmailAddress": "Existing Email Address", "existingEmailAddress": "Existing Email Address",
"newEmailAddress": "New 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", "youWillReceiveAConfirmationRequestToYour": "You will receive a confirmation request to your new email address that you need to accept before your email is actually changed",
@ -969,10 +1022,5 @@
"thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter", "thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter",
"thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter", "thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter",
"thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number", "thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number",
"thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character", "thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character"
"templateData": "Data passed to template when compiling with Handlebars",
"templateVariables": "Map of template/subject variables to replace",
"sendTransactionalEmail": "Send transactional email",
"sendSingleEmailByTemplateId": "Send single email by template with given templateId",
"sendConfigurationId": "ID of configuration used to create mailer instance"
} }

View file

@ -1,5 +1,31 @@
{ {
"welcomeToMailtrain": "Bienvenido a Mailtrain...", "emailMustNotBeEmpty": "El email no debe estar vacío.",
"invalidEmailAddress": "Email inválido.",
"theEmailIsAlreadyAssociatedWithAnother": "El email ya está asociado a otro usuario del sistema.",
"validationIsInProgress": "Validación en progreso...",
"fullNameMustNotBeEmpty": "El nombre completo no debe estar vacío.",
"currentPasswordMustNotBeEmpty": "La contraseña actual no debe estar vacía.",
"incorrectPassword": "Contraseña incorrecta.",
"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",
"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</1>.",
"personalAccessToken": "Token de acceso personal", "personalAccessToken": "Token de acceso personal",
"accessTokenNotYetGenerated": "El token de acceso aun no se ha generado", "accessTokenNotYetGenerated": "El token de acceso aun no se ha generado",
"api": "API", "api": "API",
@ -46,63 +72,19 @@
"thisApiCallEitherDeleteEmailsFrom": "This API call either delete emails from blacklist", "thisApiCallEitherDeleteEmailsFrom": "This API call either delete emails from blacklist",
"getTheListsAUserHasSubscribedTo": "Get the lists a user has subscribed to", "getTheListsAUserHasSubscribedTo": "Get the lists a user has subscribed to",
"retrieveTheListsThatTheUserWithEmailHas": "Retrieve the lists that the user with :email has subscribed to.", "retrieveTheListsThatTheUserWithEmailHas": "Retrieve the lists that the user with :email has subscribed to.",
"triggerFetchOfACampaign": "Trigger fetch of a campaign",
"triggerFetchOfACampaign - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger fetch of a campaign",
"forcesTheRssFeedCheckToImmediatelyCheck": "Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.",
"forcesTheRssFeedCheckToImmediatelyCheck - TODO: update line above and then delete this line to mark that the translation has been fixed": "Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.",
"sendTransactionalEmail": "Send transactional email",
"sendSingleEmailByTemplateWithGiven": "Send single email by template with given templateId",
"sendSingleEmailByTemplateWithGiven - TODO: update line above and then delete this line to mark that the translation has been fixed": "Send single email by template with given templateId",
"idOfConfigurationUsedToCreateMailer": "ID of configuration used to create mailer instance",
"subject": "Subject",
"dataPassedToTemplateWhenCompilingWith": "Data passed to template when compiling with Handlebars",
"mapOfTemplatesubjectVariablesToReplace": "Map of template/subject variables to replace",
"apiResponseIsAJsonStructureWithErrorAnd": "API response is a JSON structure with <1>error</1> and <3>data</3> properties. If the response <5>error</5> has a value set then the request failed.", "apiResponseIsAJsonStructureWithErrorAnd": "API response is a JSON structure with <1>error</1> and <3>data</3> properties. If the response <5>error</5> has a value set then the request failed.",
"youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type</1> when making a request. You can either use <3>application/x-www-form-urlencoded</3> for normal form data or <5>application/json</5> for a JSON payload. Using <7>multipart/form-data</7> is not supported.", "youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type</1> when making a request. You can either use <3>application/x-www-form-urlencoded</3> for normal form data or <5>application/json</5> for a JSON payload. Using <7>multipart/form-data</7> is not supported.",
"emailMustNotBeEmpty": "El email no debe estar vacío.",
"invalidEmailAddress": "Email inválido.",
"theEmailIsAlreadyAssociatedWithAnother": "El email ya está asociado a otro usuario del sistema.",
"validationIsInProgress": "Validación en progreso...",
"fullNameMustNotBeEmpty": "El nombre completo no debe estar vacío.",
"currentPasswordMustNotBeEmpty": "La contraseña actual no debe estar vacía.",
"incorrectPassword": "Contraseña incorrecta.",
"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",
"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</1>.",
"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.",
"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.",
"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",
"emailMustNotBeEmpty-1": "Email must not be empty", "emailMustNotBeEmpty-1": "Email must not be empty",
"theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.", "theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.",
"saving": "Saving ...", "saving": "Saving ...",
@ -116,9 +98,17 @@
"addEmailToBlacklist-1": "Add Email to Blacklist", "addEmailToBlacklist-1": "Add Email to Blacklist",
"addToBlacklist": "Add to Blacklist", "addToBlacklist": "Add to Blacklist",
"blacklistedEmails": "Blacklisted Emails", "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",
"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",
"createRegularCampaign": "Crear Campaña Regular", "createRegularCampaign": "Crear Campaña Regular",
"sendSettings": "Configuración de envío",
"workWithCampaignNamespace": "Trabajar con el espacio de nombres de la campaña",
"createRssCampaign": "Create RSS Campaign", "createRssCampaign": "Create RSS Campaign",
"createTriggeredCampaign": "Create Triggered Campaign", "createTriggeredCampaign": "Create Triggered Campaign",
"editRegularCampaign": "Edit Regular Campaign", "editRegularCampaign": "Edit Regular Campaign",
@ -140,7 +130,8 @@
"rssFeedUrlMustBeGiven": "RSS feed URL must be given", "rssFeedUrlMustBeGiven": "RSS feed URL must be given",
"listMustBeSelected": "List must be selected", "listMustBeSelected": "List must be selected",
"segmentMustBeSelected": "Segment must be selected", "segmentMustBeSelected": "Segment must be selected",
"campaignSaved": "Campaign saved", "campaignCreated": "Campaign created",
"campaignCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Campaign created",
"rssFeedUrl": "RSS Feed Url", "rssFeedUrl": "RSS Feed Url",
"name": "Nombre", "name": "Nombre",
"id": "ID", "id": "ID",
@ -148,7 +139,6 @@
"description": "Descripciçon", "description": "Descripciçon",
"namespace": "Espacio de nombres", "namespace": "Espacio de nombres",
"namespace_plural": "Espacios de nombres", "namespace_plural": "Espacios de nombres",
"namespaceFiltering": "Filtrar espacio de nombres",
"remove": "Eliminar", "remove": "Eliminar",
"insertNewEntryBeforeThisOne": "Insert new entry before this one", "insertNewEntryBeforeThisOne": "Insert new entry before this one",
"moveUp": "Move up", "moveUp": "Move up",
@ -174,25 +164,32 @@
"contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.", "contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.",
"renderUrl": "Render URL", "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.", "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.",
"save": "Save",
"saveAndEditContent": "Save and edit content",
"saveCampaignAndGoToStatus": "Save campaign and go to status",
"deletingCampaign": "Deleting campaign ...", "deletingCampaign": "Deleting campaign ...",
"campaignDeleted": "Campaign deleted", "campaignDeleted": "Campaign deleted",
"formCannotBeEditedBecauseTheCampaignIs": "Form cannot be edited because the campaign is currently being sent out. Wait till the sending is finished and refresh.", "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", "thisIsTheCampaignIdDisplayedToThe": "This is the campaign ID displayed to the subscribers",
"sendSettings": "Configuración de envío",
"sendConfiguration": "Send configuration", "sendConfiguration": "Send configuration",
"sendConfiguration_plural": "Send configurations", "sendConfiguration_plural": "Send configurations",
"customUnsubscribeUrl": "Custom unsubscribe URL", "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", "disableOpenedTracking": "Disable opened tracking",
"disableClickedTracking": "Disable clicked tracking", "disableClickedTracking": "Disable clicked tracking",
"saveAndEditContent": "Save and edit content",
"delete": "Delete", "delete": "Delete",
"editCustomContent": "Edit Custom Content", "regular": "Regular",
"customTemplateEditor": "Custom template editor", "triggered": "Triggered",
"testSend": "Test send", "rss": "RSS",
"idle": "Idle",
"scheduled": "Scheduled",
"paused": "Paused",
"finished": "Finished",
"inactive": "Inactive",
"active": "Active",
"sending": "Sending",
"status": "Status", "status": "Status",
"sendingScheduled": "Sending scheduled", "sendingScheduled": "Sending scheduled",
"sending": "Sending",
"statistics": "Statistics", "statistics": "Statistics",
"edit": "Edit", "edit": "Edit",
"content": "Content", "content": "Content",
@ -201,20 +198,33 @@
"triggers": "Triggers", "triggers": "Triggers",
"share": "Share", "share": "Share",
"createCampaign": "Create Campaign", "createCampaign": "Create Campaign",
"namespaceFilter": "Namespace filtering",
"regular": "Regular",
"rss": "RSS",
"triggered": "Triggered",
"campaigns": "Campañas", "campaigns": "Campañas",
"countries": "Countries",
"devices": "Devices",
"campaignName": "Campaign \"{{name}}\"",
"delivered": "Delivered",
"deliveredEmails": "Delivered Emails",
"complained": "Complained",
"subscribersThatComplained": "Subscribers that Complained",
"bounced": "Bounced",
"emailsThatBounced": "Emails that Bounced",
"unsubscribed": "Unsubscribed",
"subscribersThatUnsubscribed": "Subscribers that Unsubscribed",
"opened": "Opened",
"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", "campaignStatistics": "Campaign Statistics",
"total": "Total", "total": "Total",
"delivered": "Delivered",
"blacklisted": "Blacklisted", "blacklisted": "Blacklisted",
"bounced": "Bounced",
"complaints": "Complaints", "complaints": "Complaints",
"unsubscribed": "Unsubscribed",
"opened": "Opened",
"clicked": "Clicked", "clicked": "Clicked",
"quickReports": "Quick Reports",
"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</1> 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</1> functionality of Mailtrain.",
"uniqueVisitors": "Unique visitors", "uniqueVisitors": "Unique visitors",
"totalClicks": "Total clicks", "totalClicks": "Total clicks",
"campaignLinks": "Campaign links", "campaignLinks": "Campaign links",
@ -222,8 +232,6 @@
"listId": "List ID", "listId": "List ID",
"listNamespace": "List namespace", "listNamespace": "List namespace",
"opensCount": "Opens count", "opensCount": "Opens count",
"countries": "Countries",
"devices": "Devices",
"desktop": "Desktop", "desktop": "Desktop",
"tv": "TV", "tv": "TV",
"tablet": "Tablet", "tablet": "Tablet",
@ -247,10 +255,10 @@
"dateIsInvalid": "La fecha es inválida", "dateIsInvalid": "La fecha es inválida",
"timeMustNotBeEmpty": "El tiempo no debe estar vacío", "timeMustNotBeEmpty": "El tiempo no debe estar vacío",
"timeIsInvalid": "El tiempo es inválido", "timeIsInvalid": "El tiempo es inválido",
"confirmReset": "Confirmar reinicio",
"confirmLaunch": "Confirm launzamiento", "confirmLaunch": "Confirm launzamiento",
"doYouWantToLaunchTheCampaign?": "Quieres lanzar la campaña?",
"confirmReset": "Confirmar reinicio",
"doYouWantToResetTheCampaign?All": "Quieres reiniciar la campaña? Todas las estadísticas se perderán.", "doYouWantToResetTheCampaign?All": "Quieres reiniciar la campaña? Todas las estadísticas se perderán.",
"doYouWantToLaunchTheCampaign?All": "Quieres lanzar la campaña?",
"no": "No", "no": "No",
"yes": "Si", "yes": "Si",
"subscribers-1": "subscribers", "subscribers-1": "subscribers",
@ -261,7 +269,7 @@
"scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time", "scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time",
"date": "Date", "date": "Date",
"time": "Time", "time": "Time",
"enter24hourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)", "enter24HourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)",
"rescheduleSend": "Reschedule send", "rescheduleSend": "Reschedule send",
"scheduleSend": "Schedule send", "scheduleSend": "Schedule send",
"send": "Send", "send": "Send",
@ -283,27 +291,13 @@
"sendTestEmail": "Send Test Email", "sendTestEmail": "Send Test Email",
"cancel": "Cancel", "cancel": "Cancel",
"subscription": "Subscription", "subscription": "Subscription",
"idle": "Idle",
"scheduled": "Scheduled",
"paused": "Paused",
"finished": "Finished",
"inactive": "Inactive",
"active": "Active",
"campaignName": "Campaign \"{{name}}\"",
"deliveredEmails": "Delivered Emails",
"complained": "Complained",
"subscribersThatComplained": "Subscribers that Complained",
"emailsThatBounced": "Emails that Bounced",
"subscribersThatUnsubscribed": "Subscribers that Unsubscribed",
"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",
"valuesMustNotBeEmpty": "Values must not be empty", "valuesMustNotBeEmpty": "Values must not be empty",
"valueMustBeANonnegativeNumber": "Value must be a non-negative number", "valueMustBeANonnegativeNumber": "Value must be a non-negative number",
"sourceCampaignMustNotBeEmpty": "Source campaign must not be empty", "sourceCampaignMustNotBeEmpty": "Source campaign must not be empty",
"triggerSaved": "Trigger saved", "triggerUpdated": "Trigger updated",
"triggerUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger updated",
"triggerCreated": "Trigger created",
"triggerCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger created",
"deletingTrigger": "Deleting trigger ...", "deletingTrigger": "Deleting trigger ...",
"triggerDeleted": "Trigger deleted", "triggerDeleted": "Trigger deleted",
"editTrigger": "Edit Trigger", "editTrigger": "Edit Trigger",
@ -314,11 +308,12 @@
"event": "Event", "event": "Event",
"selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.", "selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.",
"enabled": "Enabled", "enabled": "Enabled",
"daysAfter": "Days after",
"latestOpen": "Latest open", "latestOpen": "Latest open",
"latestClick": "Latest click", "latestClick": "Latest click",
"notOpened": "Not opened", "notOpened": "Not opened",
"notClicked": "Not clicked", "notClicked": "Not clicked",
"daysAfter": "Days after",
"welcomeToMailtrain": "Bienvenido a Mailtrain...",
"close": "Close", "close": "Close",
"countFileAdded": "{{count}} file added", "countFileAdded": "{{count}} file added",
"countFileAdded_plural": "{{count}} files added", "countFileAdded_plural": "{{count}} files added",
@ -338,7 +333,7 @@
"size": "Size", "size": "Size",
"download": "Download", "download": "Download",
"confirmFileDeletion": "Confirm file deletion", "confirmFileDeletion": "Confirm file deletion",
"filesareYouSureToDeleteFile": "Are you sure you want to delete the file?", "areYouSureYouWantToDeleteTheFile?": "Are you sure you want to delete the file?",
"dropCountFile": "Drop {{count}} file", "dropCountFile": "Drop {{count}} file",
"dropCountFile_plural": "Drop {{count}} files", "dropCountFile_plural": "Drop {{count}} files",
"dropFilesHere": "Drop files here", "dropFilesHere": "Drop files here",
@ -359,13 +354,32 @@
"andMore": "... and more", "andMore": "... and more",
"confirmDeletion": "Confirm Deletion", "confirmDeletion": "Confirm Deletion",
"areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?", "areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?",
"namespacemustBeSelected": "Namespace must be selected", "namespaceMustBeSelected": "Namespace must be selected",
"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",
"mjml": "MJML", "mjml": "MJML",
"html": "HTML", "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.", "countEntriesSelected": "{{ count }} entries selected.",
"loading-1": "Loading ...",
"customFormMustBeSelected": "Custom form must be selected", "customFormMustBeSelected": "Custom form must be selected",
"listSaved": "List saved", "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",
"onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)", "onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)",
"onestepWithUnsubscriptionFormIeNoEmail": "One-step with unsubscription form (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)", "twostepIeAnEmailWithConfirmationLinkWill": "Two-step (i.e. an email with confirmation link will be sent)",
@ -373,6 +387,18 @@
"manualIeUnsubscriptionHasToBePerformedBy": "Manual (i.e. unsubscription has to be performed by the list administrator)", "manualIeUnsubscriptionHasToBePerformedBy": "Manual (i.e. unsubscription has to be performed by the list administrator)",
"defaultMailtrainForms": "Default Mailtrain Forms", "defaultMailtrainForms": "Default Mailtrain Forms",
"customFormsSelectFormBelow": "Custom Forms (select form below)", "customFormsSelectFormBelow": "Custom Forms (select form below)",
"recipientsNameTemplate": "Recipients name template",
"specifyUsingMergeTagsOfThisListHowTo": "Specify using merge tags of this list how to construct full name of the recipient. This full name is used as \"To\" header when sending emails.",
"emptyCustomNoFields": "Empty / Custom (no fields)",
"emptyCustomNoFields - TODO: update line above and then delete this line to mark that the translation has been fixed": "Empty / Custom (no fields)",
"nameOneField": "Name (one field)",
"nameOneField - TODO: update line above and then delete this line to mark that the translation has been fixed": "Name (one field)",
"firstNameAndLastNameTwoFields": "First name and Last name (two fields)",
"firstNameAndLastNameTwoFields - TODO: update line above and then delete this line to mark that the translation has been fixed": "First name and Last name (two fields)",
"representationOfSubscribersName": "Representation of subscriber's name",
"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 ...", "deletingList": "Deleting list ...",
"listDeleted": "List deleted", "listDeleted": "List deleted",
"editList": "Edit List", "editList": "Edit List",
@ -382,8 +408,6 @@
"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.", "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", "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.", "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.",
"recipientsNameTemplate": "Recipients name template",
"specifyUsingMergeTagsOfThisListHowTo": "Specify using merge tags of this list how to construct full name of the recipient. This full name is used as \"To\" header when sending emails.",
"sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.", "sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.",
"forms": "Forms", "forms": "Forms",
"webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.", "webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.",
@ -393,10 +417,6 @@
"unsubscribeHeader": "Unsubscribe header", "unsubscribeHeader": "Unsubscribe header",
"doNotSendListUnsubscribeHeaders": "Do not send List-Unsubscribe headers", "doNotSendListUnsubscribeHeaders": "Do not send List-Unsubscribe headers",
"theCustomFormUsedForThisListYouCanCreate": "The custom form used for this list. You can create a form <1>here</1>.", "theCustomFormUsedForThisListYouCanCreate": "The custom form used for this list. You can create a form <1>here</1>.",
"fields": "Fields",
"segments": "Segments",
"imports": "Imports",
"customForms-1": "Custom Forms",
"mergeTagIsInvalidMayMustBeUppercaseAnd": "Merge tag is invalid. May must be uppercase and contain only characters A-Z, 0-9, _. It must start with a letter.", "mergeTagIsInvalidMayMustBeUppercaseAnd": "Merge tag is invalid. May must be uppercase and contain only characters A-Z, 0-9, _. It must start with a letter.",
"anotherFieldWithTheSameMergeTagExists": "Another field with the same merge tag exists. Please choose another merge tag.", "anotherFieldWithTheSameMergeTagExists": "Another field with the same merge tag exists. Please choose another merge tag.",
"groupHasToBeSelected": "Group has to be selected", "groupHasToBeSelected": "Group has to be selected",
@ -405,7 +425,10 @@
"defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date",
"defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options",
"errrorOnLineLine": "Errror on line {{ line }}", "errrorOnLineLine": "Errror on line {{ line }}",
"fieldSaved": "Field saved", "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",
"notVisible": "Not visible", "notVisible": "Not visible",
"endOfList": "End of list", "endOfList": "End of list",
"fieldSettings": "Field settings", "fieldSettings": "Field settings",
@ -419,7 +442,19 @@
"ddmm": "DD/MM", "ddmm": "DD/MM",
"mergeTag": "Merge Tag", "mergeTag": "Merge Tag",
"group": "Group", "group": "Group",
"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",
"containingGroup - TODO: update line above and then delete this line to mark that the translation has been fixed": "Containing group",
"selectGroupToWhichTheOptionsShouldBelong": "Select group to which the options should belong.", "selectGroupToWhichTheOptionsShouldBelong": "Select group to which the options should belong.",
"checkedLabel": "Checked label",
"checkedLabel - TODO: update line above and then delete this line to mark that the translation has been fixed": "Checked label",
"labelThatWillBeDisplayedInListAnd": "Label that will be displayed in list and subscription when the option is checked",
"labelThatWillBeDisplayedInListAnd - 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 checked",
"uncheckedLabel": "Unchecked label",
"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 ...", "deletingField": "Deleting field ...",
"fieldDeleted": "Field deleted", "fieldDeleted": "Field deleted",
"editField": "Edit Field", "editField": "Edit Field",
@ -450,6 +485,7 @@
"birthday": "Birthday", "birthday": "Birthday",
"jsonValueForCustomRendering": "JSON value for custom rendering", "jsonValueForCustomRendering": "JSON value for custom rendering",
"option": "Option", "option": "Option",
"fields": "Fields",
"thePlaintextVersionForThisEmail": "The plaintext version for this email", "thePlaintextVersionForThisEmail": "The plaintext version for this email",
"layout": "Layout", "layout": "Layout",
"formInputStyle": "Form Input Style", "formInputStyle": "Form Input Style",
@ -483,7 +519,10 @@
"unsubscribe": "Unsubscribe", "unsubscribe": "Unsubscribe",
"dataProtection": "Data protection", "dataProtection": "Data protection",
"listOfErrorsInTemplates": "List of errors in templates", "listOfErrorsInTemplates": "List of errors in templates",
"formsSaved": "Forms saved", "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 ...", "deletingForm": "Deleting form ...",
"formDeleted": "Form deleted", "formDeleted": "Form deleted",
"editCustomForms": "Edit Custom Forms", "editCustomForms": "Edit Custom Forms",
@ -493,6 +532,9 @@
"selectListWhoseFieldsWillBeUsedToPreview": "Select list whose fields will be used to preview the forms.", "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\".", "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:", "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", "templates": "Templates",
"customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here</1>", "customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here</1>",
"createCustomForm": "Create Custom Form", "createCustomForm": "Create Custom Form",
@ -514,8 +556,19 @@
"editImport": "Edit Import", "editImport": "Edit Import",
"createImport": "Create Import", "createImport": "Create Import",
"source": "Source", "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", "lastRun": "Last run",
"detailedStatus": "Detailed status", "detailedStatus": "Detailed status",
"imports": "Imports",
"row": "Row", "row": "Row",
"reason": "Reason", "reason": "Reason",
"importRunStatus": "Import Run Status", "importRunStatus": "Import Run Status",
@ -532,20 +585,12 @@
"started": "Started", "started": "Started",
"processed": "Processed", "processed": "Processed",
"new": "New", "new": "New",
"failed": "Failed",
"importStatus": "Import Status", "importStatus": "Import Status",
"actions": "Actions", "actions": "Actions",
"start": "Start", "start": "Start",
"importRuns": "Import Runs", "importRuns": "Import Runs",
"csvFile": "CSV file", "segments": "Segments",
"preparing": "Preparing", "customForms-1": "Custom Forms",
"stopping": "Stopping",
"ready": "Ready",
"preparationFailed": "Preparation failed",
"running": "Running",
"starting": "Starting",
"basicImportOfSubscribers": "Basic import of subscribers",
"unsubscribeEmails": "Unsubscribe emails",
"listName": "List \"{{name}}\"", "listName": "List \"{{name}}\"",
"fieldName-1": "Field \"{{name}}\"", "fieldName-1": "Field \"{{name}}\"",
"segmentName": "Segment \"{{name}}\"", "segmentName": "Segment \"{{name}}\"",
@ -553,23 +598,19 @@
"run": "Run", "run": "Run",
"customFormsName": "Custom Forms \"{{name}}\"", "customFormsName": "Custom Forms \"{{name}}\"",
"newRule": "New rule", "newRule": "New rule",
"segmentSaved": "Segment saved", "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 ...", "deletingSegment": "Deleting segment ...",
"segmentDeleted": "Segment deleted", "segmentDeleted": "Segment deleted",
"editSegment": "Edit Segment", "editSegment": "Edit Segment",
"createSegment": "Create Segment", "createSegment": "Create Segment",
"saveAndStay": "Save and Stay",
"saveAndLeave": "Save and Leave",
"segmentOptions": "Segment Options", "segmentOptions": "Segment Options",
"toplevelMatchType": "Toplevel match type", "toplevelMatchType": "Toplevel match type",
"addCompositeRule": "Add Composite Rule", "addCompositeRule": "Add Composite Rule",
"addRule": "Add Rule", "addRule": "Add Rule",
"rules": "Rules", "rules": "Rules",
"fieldMustBeSelected": "Field must be selected",
"field": "Field",
"select-1": "-- Select --",
"ruleOptions": "Rule Options",
"ok": "OK",
"allRulesMustMatch": "All rules must match", "allRulesMustMatch": "All rules must match",
"atLeastOneRuleMustMatch": "At least one rule must match", "atLeastOneRuleMustMatch": "At least one rule must match",
"noRuleMayMatch": "No rule may match", "noRuleMayMatch": "No rule may match",
@ -656,8 +697,18 @@
"emailAddress-1": "Email address", "emailAddress-1": "Email address",
"signupCountry": "Signup country", "signupCountry": "Signup country",
"signUpDate": "Sign up date", "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",
"select-1": "-- Select --",
"ruleOptions": "Rule Options",
"ok": "OK",
"anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.", "anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.",
"susbscriptionSaved": "Susbscription saved", "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",
"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.", "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", "notSelected": "Not selected",
"areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?", "areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?",
@ -669,6 +720,8 @@
"subscriptionStatus": "Subscription status", "subscriptionStatus": "Subscription status",
"testUser?": "Test user?", "testUser?": "Test user?",
"ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages", "ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages",
"subscribed": "Subscribed",
"unubscribed": "Unubscribed",
"erased": "[ERASED]", "erased": "[ERASED]",
"confirmUnsubscription": "Confirm Unsubscription", "confirmUnsubscription": "Confirm Unsubscription",
"areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?", "areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?",
@ -682,10 +735,39 @@
"subscriptionForm": "Subscription Form", "subscriptionForm": "Subscription Form",
"exportAsCsv": "Export as CSV", "exportAsCsv": "Export as CSV",
"addSubscriber": "Add Subscriber", "addSubscriber": "Add Subscriber",
"subscribed": "Subscribed", "usernameOrEmailMustNotBeEmpty": "Username or email must not be empty",
"unubscribed": "Unubscribed", "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.",
"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.",
"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", "parentNamespaceMustBeSelected": "Parent Namespace must be selected",
"namespaceSaved": "Namespace saved", "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",
"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.", "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.", "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 ...", "deletingNamespace": "Deleting namespace ...",
@ -700,7 +782,10 @@
"atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected", "atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected",
"atMostCountItemsCanToBeSelected": "At most {{ count }} item(s) can 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.", "reportParametersAreNotSelectedWaitFor": "Report parameters are not selected. Wait for them to get displayed and then fill them in.",
"reportSaved": "Report saved", "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",
"unknownFieldTypeType": "Unknown field type \"{{type}}\"", "unknownFieldTypeType": "Unknown field type \"{{type}}\"",
"deletingReport": "Deleting report ...", "deletingReport": "Deleting report ...",
"reportDeleted": "Report deleted", "reportDeleted": "Report deleted",
@ -717,19 +802,15 @@
"viewConsoleOutput": "View console output", "viewConsoleOutput": "View console output",
"reportTemplates": "Report Templates", "reportTemplates": "Report Templates",
"reports": "Reports", "reports": "Reports",
"reportName": "Report {{name}}", "reportName": "Report \"{{name}}\"",
"loadingReport": "Loading report ...",
"outputForReportName": "Output for report {{name}}",
"loadingReportOutput": "Loading report output ...",
"reportIsBeingGenerated": "Report is being generated",
"reportNotGenerated": "Report not generated",
"refresh": "Refresh",
"reportName-1": "Report \"{{name}}\"",
"output": "Output", "output": "Output",
"templateName": "Template \"{{name}}\"", "templateName": "Template \"{{name}}\"",
"mimeTypeMustBeSelected": "MIME Type must be selected", "mimeTypeMustBeSelected": "MIME Type must be selected",
"syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification", "syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification",
"reportTemplateSaved": "Report template saved", "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 ...", "deletingReportTemplate": "Deleting report template ...",
"reportTemplateDeleted": "Report template deleted", "reportTemplateDeleted": "Report template deleted",
"editReportTemplate": "Edit Report Template", "editReportTemplate": "Edit Report Template",
@ -745,18 +826,25 @@
"openCounts": "Open counts", "openCounts": "Open counts",
"openCountsAsCsv": "Open counts as CSV", "openCountsAsCsv": "Open counts as CSV",
"aggregatedOpenCounts": "Aggregated open counts", "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)", "current": "(current)",
"toggleNavigation": "Toggle navigation",
"administration": "Administracion", "administration": "Administracion",
"users": "Users", "users": "Users",
"globalSettings": "Global Settings", "globalSettings": "Global Settings",
"sendConfigurations": "Send configurations", "sendConfigurations": "Send configurations",
"logOut": "Log out", "logOut": "Log out",
"home": "Home", "home": "Home",
"sourceOnGitHub": "Source on GitHub",
"mailerTypeMustBeSelected": "Mailer type must be selected", "mailerTypeMustBeSelected": "Mailer type must be selected",
"verpHostnameMustNotBeEmpty": "VERP hostname must not be empty", "verpHostnameMustNotBeEmpty": "VERP hostname must not be empty",
"sendConfigurationSaved": "Send configuration saved", "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 ...", "deletingSendConfiguration": "Deleting send configuration ...",
"sendConfigurationDeleted": "Send configuration deleted", "sendConfigurationDeleted": "Send configuration deleted",
"editSendConfiguration": "Edit Send Configuration", "editSendConfiguration": "Edit Send Configuration",
@ -766,7 +854,6 @@
"overridable": "Overridable", "overridable": "Overridable",
"defaultFromName": "Default \"from\" name", "defaultFromName": "Default \"from\" name",
"defaultReplytoEmail": "Default \"reply-to\" email", "defaultReplytoEmail": "Default \"reply-to\" email",
"subject": "Subject",
"xMailer": "X-Mailer", "xMailer": "X-Mailer",
"verpBounceHandling": "VERP Bounce Handling", "verpBounceHandling": "VERP Bounce Handling",
"verpStatus": "VERP status", "verpStatus": "VERP status",
@ -779,7 +866,6 @@
"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.</0>", "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.</0>",
"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.</0>", "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.</0>",
"verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.</0>", "verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.</0>",
"sendConfigurations-1": "Send Configurations",
"labelMustNotBeEmpty": "{{label}} must not be empty", "labelMustNotBeEmpty": "{{label}} must not be empty",
"labelMustBeANumber": "{{label}} must be a number", "labelMustBeANumber": "{{label}} must be a number",
"genericSmtp": "Generic SMTP", "genericSmtp": "Generic SMTP",
@ -833,6 +919,7 @@
"region": "Region", "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.</0>", "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.</0>",
"doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.</0>", "doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.</0>",
"sendConfigurations-1": "Send Configurations",
"globalSettingsSaved": "Global settings saved", "globalSettingsSaved": "Global settings saved",
"adminEmail": "Admin email", "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.", "thisEmailIsUsedAsTheMainContactAndAsA": "This email is used as the main contact and as a default email address if no email address is specified in list settings.",
@ -858,19 +945,55 @@
"userMustNotBeEmpty": "User must not be empty", "userMustNotBeEmpty": "User must not be empty",
"roleMustBeSelected": "Role must be selected", "roleMustBeSelected": "Role must be selected",
"role": "Role", "role": "Role",
"unshare": "Unshare",
"unshare - TODO: update line above and then delete this line to mark that the translation has been fixed": "Unshare",
"confirmUnsharing": "Confirm Unsharing",
"confirmUnsharing - TODO: update line above and then delete this line to mark that the translation has been fixed": "Confirm Unsharing",
"areYouSureYouWantToRemoveTheShareToUser": "Are you sure you want to remove the share to user \"{{username}}\"?",
"areYouSureYouWantToRemoveTheShareToUser - 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 share to user \"{{username}}\"?",
"removingShareForUserUsername": "Removing share for user \"{{username}}\"",
"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", "addUser": "Add User",
"user": "User", "user": "User",
"existingUsers": "Existing Users", "existingUsers": "Existing Users",
"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}}\"",
"removingSharingOfTheTypeNameName - TODO: update line above and then delete this line to mark that the translation has been fixed": "Removing sharing of the {{typeName}} \"{{name}}\"",
"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}}\"", "sharesForUserUsername": "Shares for user \"{{username}}\"",
"templateSaved": "Template saved", "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",
"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 ...", "deletingTemplate": "Deleting template ...",
"templateDeleted": "Template deleted", "templateDeleted": "Template deleted",
"editTemplate": "Edit Template", "editTemplate": "Edit Template",
"createTemplate": "Create Template", "createTemplate": "Create Template",
"saveAndEditTemplate": "Save and edit template", "cloneFromAnExistingTemplate": "Clone from an existing template",
"mosaicoTemplates": "Mosaico Templates", "cloneFromAnExistingTemplate - TODO: update line above and then delete this line to mark that the translation has been fixed": "Clone from an existing template",
"sendConfigurationHasToBeSelected": "Send configuration has to be selected.",
"listHasToBeSelected": "List has to be selected.",
"mosaico": "Mosaico", "mosaico": "Mosaico",
"templateContentHtml": "Template content (HTML)", "templateContentHtml": "Template content (HTML)",
"mosaicoTemplateDesigner": "Mosaico Template Designer", "mosaicoTemplateDesigner": "Mosaico Template Designer",
@ -890,7 +1013,6 @@
"urlThatPointsToTheUnsubscribePage": "URL that points to the unsubscribe page", "urlThatPointsToTheUnsubscribePage": "URL that points to the unsubscribe page",
"urlThatPointsToThePreferencesPageOfThe": "URL that points to the preferences page of the subscriber", "urlThatPointsToThePreferencesPageOfThe": "URL that points to the preferences page of the subscriber",
"urlToPreviewTheMessageInABrowser": "URL to preview the message in a browser", "urlToPreviewTheMessageInABrowser": "URL to preview the message in a browser",
"recipientNameAsItAppearsInEmailsToHeader": "Recipient name as it appears in email's 'To' header",
"uniqueIdThatIdentifiesTheRecipient": "Unique ID that identifies the recipient", "uniqueIdThatIdentifiesTheRecipient": "Unique ID that identifies the recipient",
"uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign", "uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign",
"uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign", "uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign",
@ -902,19 +1024,37 @@
"rssEntrySummary": "RSS entry summary", "rssEntrySummary": "RSS entry summary",
"rssEntryImageUrl": "RSS entry image URL", "rssEntryImageUrl": "RSS entry image URL",
"toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here</1>. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API</3>, a third party service. Their Terms of Service and Privacy Policy apply.", "toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here</1>. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API</3>, a third party service. Their Terms of Service and Privacy Policy apply.",
"mosaicoTemplateSaved": "Mosaico template saved", "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 ...", "deletingMosaicoTemplate": "Deleting Mosaico template ...",
"mosaicoTemplateDeleted": "Mosaico template deleted", "mosaicoTemplateDeleted": "Mosaico template deleted",
"editMosaicoTemplate": "Edit Mosaico Template", "editMosaicoTemplate": "Edit Mosaico Template",
"createMosaicoTemplate": "Create 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",
"blockThumbnails": "Block thumbnails", "blockThumbnails": "Block thumbnails",
"versafixOne": "Versafix One", "versafixOne": "Versafix One",
"templateContent": "Template content", "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}}\"", "mosaicoTemplateName": "Mosaico Template \"{{name}}\"",
"theseFilesArePubliclyAvailableViaHttpSo-1": "These files are publicly available via HTTP so that they can be linked to from the Mosaico template.", "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.", "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.", "theUserNameAlreadyExistsInTheSystem": "The user name already exists in the system.",
"userSaved": "User saved", "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.", "theUsernameIsAlreadyAssignedToAnother": "The username is already assigned to another user.",
"theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.", "theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.",
"deletingUser": "Deleting user ...", "deletingUser": "Deleting user ...",
@ -926,7 +1066,7 @@
"deleteUser": "Delete User", "deleteUser": "Delete User",
"userName-1": "User \"{{name}}\"", "userName-1": "User \"{{name}}\"",
"shares": "Shares", "shares": "Shares",
"subscriptionconfirmed": "Subscription Confirmed", "subscriptionConfirmed": "Subscription Confirmed",
"listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered", "listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered",
"listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription", "listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription",
"pleaseConfirmSubscription": "Please Confirm Subscription", "pleaseConfirmSubscription": "Please Confirm Subscription",
@ -935,7 +1075,7 @@
"invalidEmailAddressEmailMxRecordNotFound": "Invalid email address \"{{email}}\": MX record not found for domain", "invalidEmailAddressEmailMxRecordNotFound": "Invalid email address \"{{email}}\": MX record not found for domain",
"invalidEmailAddressEmailAddressDomainNot": "Invalid email address \"{{email}}\": Address domain not found", "invalidEmailAddressEmailAddressDomainNot": "Invalid email address \"{{email}}\": Address domain not found",
"invalidEmailAddressEmailAddressDomain": "Invalid email address \"{{email}}\": Address domain name is required", "invalidEmailAddressEmailAddressDomain": "Invalid email address \"{{email}}\": Address domain name is required",
"invalidEmailGeneric": "Invalid email address \"{{email}}\"", "invalidEmailAddressEmail": "Invalid email address \"{{email}}\"",
"mailerPasswordChangeRequest": "Mailer password change request", "mailerPasswordChangeRequest": "Mailer password change request",
"mailtrain": "Mailtrain", "mailtrain": "Mailtrain",
"emailAddressChanged": "Email address changed", "emailAddressChanged": "Email address changed",
@ -950,8 +1090,6 @@
"downloadSignatureVerificationKey": "Download signature verification key", "downloadSignatureVerificationKey": "Download signature verification key",
"beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;", "beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;",
"insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address <em>(optional)</em>", "insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address <em>(optional)</em>",
"warning!": "Warning!",
"javaScriptMustBeEnabledInOrderForThis": "JavaScript must be enabled in order for this form to work",
"existingEmailAddress": "Existing Email Address", "existingEmailAddress": "Existing Email Address",
"newEmailAddress": "New 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", "youWillReceiveAConfirmationRequestToYour": "You will receive a confirmation request to your new email address that you need to accept before your email is actually changed",
@ -964,11 +1102,5 @@
"thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter", "thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter",
"thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter", "thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter",
"thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number", "thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number",
"thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character", "thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character"
"templateData": "Data passed to template when compiling with Handlebars",
"templateVariables": "Map of template/subject variables to replace",
"sendTransactionalEmail": "Send transactional email",
"sendSingleEmailByTemplateId": "Send single template by :templateId",
"sendConfigurationId": "ID of configuration used to create mailer instance"
} }

View file

@ -1,5 +1,31 @@
{ {
"welcomeToMailtrain": "Bem-vindo ao Mailtrain ...", "emailMustNotBeEmpty": "O email não pode estar vazio.",
"invalidEmailAddress": "Endereço de e-mail inválido",
"theEmailIsAlreadyAssociatedWithAnother": "O email já está associado a outro usuário no sistema.",
"validationIsInProgress": "A validação está em andamento ...",
"fullNameMustNotBeEmpty": "O nome completo não pode estar vazio",
"currentPasswordMustNotBeEmpty": "A senha atual não pode estar vazia.",
"incorrectPassword": "Senha incorreta.",
"passwordsMustMatch": "As senhas devem ser iguais",
"updatingUserProfile": "Atualizando o perfil do usuário ...",
"userProfileUpdated": "Perfil do usuário atualizado",
"thereAreErrorsInTheFormPleaseFixThemAnd": "Há erros no formulário. Corrija-os e envie-os novamente.",
"yourUpdatesCannotBeSaved": "Suas atualizações não podem ser salvas.",
"thePasswordIsIncorrectPossiblyJust": "A senha está incorreta (possivelmente apenas alterada em outra janela / sessão). Digite a senha correta e tente novamente.",
"theEmailIsAlreadyAssignedToAnotherUser": "O email já está atribuído a outro usuário. Digite outro email e tente novamente.",
"account": "Conta",
"generalSettings": "Configurações gerais",
"fullName": "Nome Completo",
"email": "Email",
"thisAddressIsUsedForAccountRecoveryIn": "Este endereço é usado para recuperação de conta no caso de você perder sua senha",
"passwordChange": "Alteração de Senha",
"youOnlyNeedToFillOutThisFormIfYouWantTo": "Preencha este formulário para alterar sua senha atual",
"currentPassword": "Senha atual",
"newPassword": "Nova senha",
"confirmPassword": "Confirmar senha",
"update": "Atualizar",
"accountManagementIsNotPossibleBecause": "O gerenciamento de conta não é possível porque o Mailtrain está configurado para usar usuários gerenciados externamente.",
"ifYouWantToChangeThePasswordUseThisLink": "Se você quiser alterar a senha, use <1> este link </ 1>.",
"personalAccessToken": "token de acesso pessoal", "personalAccessToken": "token de acesso pessoal",
"accessTokenNotYetGenerated": "Token de acesso ainda não gerado", "accessTokenNotYetGenerated": "Token de acesso ainda não gerado",
"api": "API", "api": "API",
@ -46,63 +72,19 @@
"thisApiCallEitherDeleteEmailsFrom": "Esta API pode excluir e-mails da lista negra", "thisApiCallEitherDeleteEmailsFrom": "Esta API pode excluir e-mails da lista negra",
"getTheListsAUserHasSubscribedTo": "Obter as listas em que um usuário se inscreveu", "getTheListsAUserHasSubscribedTo": "Obter as listas em que um usuário se inscreveu",
"retrieveTheListsThatTheUserWithEmailHas": "Recupere as listas com as quais o usuário: email se inscreveu.", "retrieveTheListsThatTheUserWithEmailHas": "Recupere as listas com as quais o usuário: email se inscreveu.",
"triggerFetchOfACampaign": "Trigger fetch of a campaign",
"triggerFetchOfACampaign - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger fetch of a campaign",
"forcesTheRssFeedCheckToImmediatelyCheck": "Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.",
"forcesTheRssFeedCheckToImmediatelyCheck - TODO: update line above and then delete this line to mark that the translation has been fixed": "Forces the RSS feed check to immediately check the campaign with the given CID (in :campaignCid). It works only for RSS campaigns.",
"sendTransactionalEmail": "Enviar email transacional",
"sendSingleEmailByTemplateWithGiven": "Enviar modelo único por: templateId",
"sendSingleEmailByTemplateWithGiven - TODO: update line above and then delete this line to mark that the translation has been fixed": "Send single email by template with given templateId",
"idOfConfigurationUsedToCreateMailer": "ID da configuração usada para criar a instância do mailer",
"subject": "Assunto",
"dataPassedToTemplateWhenCompilingWith": "Dados passados para o modelo ao compilar com o Handlebars",
"mapOfTemplatesubjectVariablesToReplace": "Mapa de variáveis template / subject a substituir",
"apiResponseIsAJsonStructureWithErrorAnd": "Resposta da API é uma estrutura JSON com <1> erro </ 1> e <3> dados </ 3>. Se a resposta <5> erro </ 5> tiver um valor definido, a solicitação falhou ", "apiResponseIsAJsonStructureWithErrorAnd": "Resposta da API é uma estrutura JSON com <1> erro </ 1> e <3> dados </ 3>. Se a resposta <5> erro </ 5> tiver um valor definido, a solicitação falhou ",
"youNeedToDefineProperContentTypeWhen": "Você precisa definir o <1> Content-Type </ 1> adequado ao fazer uma solicitação. Você pode usar <3> application / x-www-form-urlencoded </ 3> para dados normais de formulário ou <5> application / json </ 5> para uma carga útil JSON. O uso de <7>multipart/form-data</7> não é suportado. ", "youNeedToDefineProperContentTypeWhen": "Você precisa definir o <1> Content-Type </ 1> adequado ao fazer uma solicitação. Você pode usar <3> application / x-www-form-urlencoded </ 3> para dados normais de formulário ou <5> application / json </ 5> para uma carga útil JSON. O uso de <7>multipart/form-data</7> não é suportado. ",
"emailMustNotBeEmpty": "O email não pode estar vazio.",
"invalidEmailAddress": "Endereço de e-mail inválido",
"theEmailIsAlreadyAssociatedWithAnother": "O email já está associado a outro usuário no sistema.",
"validationIsInProgress": "A validação está em andamento ...",
"fullNameMustNotBeEmpty": "O nome completo não pode estar vazio",
"currentPasswordMustNotBeEmpty": "A senha atual não pode estar vazia.",
"incorrectPassword": "Senha incorreta.",
"passwordsMustMatch": "As senhas devem ser iguais",
"updatingUserProfile": "Atualizando o perfil do usuário ...",
"userProfileUpdated": "Perfil do usuário atualizado",
"thereAreErrorsInTheFormPleaseFixThemAnd": "Há erros no formulário. Corrija-os e envie-os novamente.",
"yourUpdatesCannotBeSaved": "Suas atualizações não podem ser salvas.",
"thePasswordIsIncorrectPossiblyJust": "A senha está incorreta (possivelmente apenas alterada em outra janela / sessão). Digite a senha correta e tente novamente.",
"theEmailIsAlreadyAssignedToAnotherUser": "O email já está atribuído a outro usuário. Digite outro email e tente novamente.",
"account": "Conta",
"generalSettings": "Configurações gerais",
"fullName": "Nome Completo",
"email": "Email",
"thisAddressIsUsedForAccountRecoveryIn": "Este endereço é usado para recuperação de conta no caso de você perder sua senha",
"passwordChange": "Alteração de Senha",
"youOnlyNeedToFillOutThisFormIfYouWantTo": "Preencha este formulário para alterar sua senha atual",
"currentPassword": "Senha atual",
"newPassword": "Nova senha",
"confirmPassword": "Confirmar senha",
"update": "Atualizar",
"accountManagementIsNotPossibleBecause": "O gerenciamento de conta não é possível porque o Mailtrain está configurado para usar usuários gerenciados externamente.",
"ifYouWantToChangeThePasswordUseThisLink": "Se você quiser alterar a senha, use <1> este link </ 1>.",
"usernameOrEmailMustNotBeEmpty": "Nome de usuário ou email não deve estar vazio",
"processing": "Processando ...",
"ifTheUsernameEmailExistsInTheSystem": "Se o nome de usuário / email existir no sistema, o link de redefinição de senha será enviado para o email registrado.",
"pleaseEnterYourUsernameEmailAndTryAgain": "Por favor insira seu nome de usuário / e-mail e tente novamente.",
"passwordReset": "Reset de senha",
"pleaseProvideTheUsernameOrEmailAddress": "Por favor, forneça o nome de usuário ou endereço de e-mail registrado em sua conta do Mailtrain.",
"weWillSendYouAnEmailThatWillAllowYouTo": "Nós lhe enviaremos um email que lhe permitirá redefinir sua senha.",
"usernameOrEmail": "Nome de usuário ou email",
"sendEmail": "Enviar email",
"userNameMustNotBeEmpty": "O nome do usuário não pode estar vazio",
"passwordMustNotBeEmpty": "A senha não pode estar vazia",
"verifyingCredentials": "Verificando credenciais ...",
"pleaseEnterYourCredentialsAndTryAgain": "Por favor, digite suas credenciais e tente novamente.",
"invalidUsernameOrPassword": "Nome de usuário ou senha inválidos",
"forgotYourPassword?": "Esqueceu sua senha?",
"signIn": "Entrar",
"username": "Nome de Usuário",
"password": "Senha",
"rememberMe": "Lembre-se de mim",
"resettingPassword": "Redefinindo senha ...",
"passwordReset-1": "Redefinição de senha",
"yourPasswordCannotBeReset": "Sua senha não pode ser redefinida.",
"thePasswordResetTokenHasExpired": "O token de redefinição de senha expirou.",
"clickHereToRequestANewPasswordResetLink": "Clique aqui para solicitar um novo link de redefinição de senha.",
"validatingPasswordResetToken": "Validando o token de redefinição de senha ...",
"thePasswordCannotBeReset": "A senha não pode ser redefinida",
"setNewPasswordFor": "Definir nova senha para",
"resetPassword": "Redefinir senha",
"emailMustNotBeEmpty-1": "O email não pode estar vazio", "emailMustNotBeEmpty-1": "O email não pode estar vazio",
"theEmailIsAlreadyOnBlacklist": "O email já está na lista negra.", "theEmailIsAlreadyOnBlacklist": "O email já está na lista negra.",
"saving": "Salvando ...", "saving": "Salvando ...",
@ -116,9 +98,17 @@
"addEmailToBlacklist-1": "Adicionar email à lista negra", "addEmailToBlacklist-1": "Adicionar email à lista negra",
"addToBlacklist": "Adicionar à lista negra", "addToBlacklist": "Adicionar à lista negra",
"blacklistedEmails": "Emails na Lista Negra", "blacklistedEmails": "Emails na Lista Negra",
"campaignUpdated": "Campaign updated",
"campaignUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Campaign updated",
"editCustomContent": "Editar conteúdo personalizado",
"customTemplateEditor": "Editor de modelos personalizados",
"save": "Salvar",
"saveAndLeave": "Salvar e sair",
"saveAndLeave - TODO: update line above and then delete this line to mark that the translation has been fixed": "Save and leave",
"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": "Testar envio",
"createRegularCampaign": "Criar Campanha Regular", "createRegularCampaign": "Criar Campanha Regular",
"sendSettings": "Configurações de envio",
"workWithCampaignNamespace": "Trabalhar com o ambiente da campanha",
"createRssCampaign": "Criar campanha de RSS", "createRssCampaign": "Criar campanha de RSS",
"createTriggeredCampaign": "Criar campanha acionada", "createTriggeredCampaign": "Criar campanha acionada",
"editRegularCampaign": "Editar campanha regular", "editRegularCampaign": "Editar campanha regular",
@ -140,7 +130,8 @@
"rssFeedUrlMustBeGiven": "O URL do feed RSS deve ser fornecido", "rssFeedUrlMustBeGiven": "O URL do feed RSS deve ser fornecido",
"listMustBeSelected": "Lista deve ser selecionada", "listMustBeSelected": "Lista deve ser selecionada",
"segmentMustBeSelected": "O segmento deve ser selecionado", "segmentMustBeSelected": "O segmento deve ser selecionado",
"campaignSaved": "Campanha salva", "campaignCreated": "Campaign created",
"campaignCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Campaign created",
"rssFeedUrl": "URL do feed RSS", "rssFeedUrl": "URL do feed RSS",
"name": "Nome", "name": "Nome",
"id": "Id", "id": "Id",
@ -148,7 +139,6 @@
"description": "Descrição", "description": "Descrição",
"namespace": "Ambiente", "namespace": "Ambiente",
"namespace_plural": "Ambientes", "namespace_plural": "Ambientes",
"namespaceFiltering": "Filtragem de Ambientes",
"remove": "Remover", "remove": "Remover",
"insertNewEntryBeforeThisOne": "Inserir nova entrada antes desta", "insertNewEntryBeforeThisOne": "Inserir nova entrada antes desta",
"moveUp": "Mover para cima", "moveUp": "Mover para cima",
@ -174,25 +164,32 @@
"contentOfTheSelectedCampaignWillBeCopied": "O conteúdo da campanha selecionada será copiado para esta campanha.", "contentOfTheSelectedCampaignWillBeCopied": "O conteúdo da campanha selecionada será copiado para esta campanha.",
"renderUrl": "URL de renderização", "renderUrl": "URL de renderização",
"ifAMessageIsSentThenThisUrlWillBePosTed": "Se uma mensagem for enviada, esta URL será colocada em POST usando o título Mesclar tags como POST. Use isto se você quiser gerar a mensagem HTML você mesmo.", "ifAMessageIsSentThenThisUrlWillBePosTed": "Se uma mensagem for enviada, esta URL será colocada em POST usando o título Mesclar tags como POST. Use isto se você quiser gerar a mensagem HTML você mesmo.",
"save": "Salvar",
"saveAndEditContent": "Salvar e editar conteúdo",
"saveCampaignAndGoToStatus": "Salvar campanha e ir para status",
"deletingCampaign": "Excluindo campanha ...", "deletingCampaign": "Excluindo campanha ...",
"campaignDeleted": "Campanha excluída", "campaignDeleted": "Campanha excluída",
"formCannotBeEditedBecauseTheCampaignIs": "O formulário não pode ser editado porque a campanha está sendo enviada. Aguarde até que o envio termine e atualize.", "formCannotBeEditedBecauseTheCampaignIs": "O formulário não pode ser editado porque a campanha está sendo enviada. Aguarde até que o envio termine e atualize.",
"thisIsTheCampaignIdDisplayedToThe": "Este é o ID da campanha exibido para os assinantes", "thisIsTheCampaignIdDisplayedToThe": "Este é o ID da campanha exibido para os assinantes",
"sendSettings": "Configurações de envio",
"sendConfiguration": "Configuração de envio", "sendConfiguration": "Configuração de envio",
"sendConfiguration_plural": "Configurações de envio", "sendConfiguration_plural": "Configurações de envio",
"customUnsubscribeUrl": "URL personalizada de cancelamento de assinatura", "customUnsubscribeUrl": "URL personalizada de cancelamento de assinatura",
"tracking": "Tracking",
"tracking - TODO: update line above and then delete this line to mark that the translation has been fixed": "Tracking",
"disableOpenedTracking": "Desativar rastreamento de abertura", "disableOpenedTracking": "Desativar rastreamento de abertura",
"disableClickedTracking": "Desativar rastreamento de clique", "disableClickedTracking": "Desativar rastreamento de clique",
"saveAndEditContent": "Salvar e editar conteúdo",
"delete": "Deletar", "delete": "Deletar",
"editCustomContent": "Editar conteúdo personalizado", "regular": "Regular",
"customTemplateEditor": "Editor de modelos personalizados", "triggered": "Triggered",
"testSend": "Testar envio", "rss": "RSS",
"idle": "Parado",
"scheduled": "Agendado",
"paused": "Pausado",
"finished": "Concluído",
"inactive": "Inativo",
"active": "Ativo",
"sending": "Enviando",
"status": "Status", "status": "Status",
"sendingScheduled": "Envio programado", "sendingScheduled": "Envio programado",
"sending": "Enviando",
"statistics": "Estatísticas", "statistics": "Estatísticas",
"edit": "Editar", "edit": "Editar",
"content": "Conteúdo", "content": "Conteúdo",
@ -201,20 +198,33 @@
"triggers": "Triggers", "triggers": "Triggers",
"share": "Compartilhar", "share": "Compartilhar",
"createCampaign": "Criar campanha", "createCampaign": "Criar campanha",
"namespaceFilter": "Filtro de ambiente",
"regular": "Regular",
"rss": "RSS",
"triggered": "Triggered",
"campaigns": "Campanhas", "campaigns": "Campanhas",
"countries": "Países",
"devices": "Dispositivos",
"campaignName": "Campanha \"{{name}}\"",
"delivered": "Entregue",
"deliveredEmails": "Emails Entregues",
"complained": "Reclamou",
"subscribersThatComplained": "Assinantes que reclamaram",
"bounced": "Retornou",
"emailsThatBounced": "Emails que foram devolvidos",
"unsubscribed": "Cancelou assinatura",
"subscribersThatUnsubscribed": "Inscritos que se desinscreveram",
"opened": "Aberto",
"clicks": "Cliques",
"theseFilesArePubliclyAvailableViaHttpSo": "Esses arquivos estão disponíveis publicamente via HTTP para que possam ser vinculados a partir do conteúdo da campanha.",
"theseFilesWillBeAttachedToTheCampaign": "Esses arquivos serão anexados aos emails da campanha como anexos adequados. Isso significa que eles contam para o tamanho eventual do email.",
"triggerName": "Trigger \"{{name}}\"",
"create": "Criar",
"campaignStatistics": "Estatísticas da campanha", "campaignStatistics": "Estatísticas da campanha",
"total": "Total", "total": "Total",
"delivered": "Entregue",
"blacklisted": "lista negra", "blacklisted": "lista negra",
"bounced": "Retornou",
"complaints": "Reclamações", "complaints": "Reclamações",
"unsubscribed": "Cancelou assinatura",
"opened": "Aberto",
"clicked": "Clicado", "clicked": "Clicado",
"quickReports": "Quick Reports",
"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</1> 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</1> functionality of Mailtrain.",
"uniqueVisitors": "visitantes únicos", "uniqueVisitors": "visitantes únicos",
"totalClicks": "Cliques totais", "totalClicks": "Cliques totais",
"campaignLinks": "links da campanha", "campaignLinks": "links da campanha",
@ -222,8 +232,6 @@
"listId": "ID da lista", "listId": "ID da lista",
"listNamespace": "Listar ambiente", "listNamespace": "Listar ambiente",
"opensCount": "Abre a contagem", "opensCount": "Abre a contagem",
"countries": "Países",
"devices": "Dispositivos",
"desktop": "Desktop", "desktop": "Desktop",
"tv": "TV", "tv": "TV",
"tablet": "Tablet", "tablet": "Tablet",
@ -247,10 +255,10 @@
"dateIsInvalid": "A data é inválida", "dateIsInvalid": "A data é inválida",
"timeMustNotBeEmpty": "O horário não deve estar vazio", "timeMustNotBeEmpty": "O horário não deve estar vazio",
"timeIsInvalid": "O tempo é inválido", "timeIsInvalid": "O tempo é inválido",
"confirmReset": "Confirmar redefinição",
"confirmLaunch": "Confirmar lançamento", "confirmLaunch": "Confirmar lançamento",
"doYouWantToLaunchTheCampaign?": "Você quer lançar a campanha?",
"confirmReset": "Confirmar redefinição",
"doYouWantToResetTheCampaign?All": "Deseja redefinir a campanha? Todas as estatísticas e o rastreio das mensagens entregues serão perdidos.", "doYouWantToResetTheCampaign?All": "Deseja redefinir a campanha? Todas as estatísticas e o rastreio das mensagens entregues serão perdidos.",
"doYouWantToLaunchTheCampaign?All": "Você quer lançar a campanha?",
"no": "Não", "no": "Não",
"yes": "Sim", "yes": "Sim",
"subscribers-1": "assinantes", "subscribers-1": "assinantes",
@ -261,7 +269,7 @@
"scheduleDeliveryAtAParticularDatetime": "Programar entrega em uma data / hora específica", "scheduleDeliveryAtAParticularDatetime": "Programar entrega em uma data / hora específica",
"date": "Data", "date": "Data",
"time": "Hora", "time": "Hora",
"enter24hourTimeInFormatHhmmEg1348": "Insira o horário de 24 horas no formato HH:MM (por exemplo, 13:48)", "enter24HourTimeInFormatHhmmEg1348": "Insira o horário de 24 horas no formato HH:MM (por exemplo, 13:48)",
"rescheduleSend": "Reagendar envio", "rescheduleSend": "Reagendar envio",
"scheduleSend": "Agendar envio", "scheduleSend": "Agendar envio",
"send": "Enviar", "send": "Enviar",
@ -283,27 +291,13 @@
"sendTestEmail": "Enviar e-mail de teste", "sendTestEmail": "Enviar e-mail de teste",
"cancel": "Cancelar", "cancel": "Cancelar",
"subscription": "Assinatura", "subscription": "Assinatura",
"idle": "Parado",
"scheduled": "Agendado",
"paused": "Pausado",
"finished": "Concluído",
"inactive": "Inativo",
"active": "Ativo",
"campaignName": "Campanha \"{{name}}\"",
"deliveredEmails": "Emails Entregues",
"complained": "Reclamou",
"subscribersThatComplained": "Assinantes que reclamaram",
"emailsThatBounced": "Emails que foram devolvidos",
"subscribersThatUnsubscribed": "Inscritos que se desinscreveram",
"clicks": "Cliques",
"theseFilesArePubliclyAvailableViaHttpSo": "Esses arquivos estão disponíveis publicamente via HTTP para que possam ser vinculados a partir do conteúdo da campanha.",
"theseFilesWillBeAttachedToTheCampaign": "Esses arquivos serão anexados aos emails da campanha como anexos adequados. Isso significa que eles contam para o tamanho eventual do email.",
"triggerName": "Trigger \"{{name}}\"",
"create": "Criar",
"valuesMustNotBeEmpty": "Os valores não devem estar vazios", "valuesMustNotBeEmpty": "Os valores não devem estar vazios",
"valueMustBeANonnegativeNumber": "O valor deve ser um número não negativo", "valueMustBeANonnegativeNumber": "O valor deve ser um número não negativo",
"sourceCampaignMustNotBeEmpty": "A campanha de origem não pode estar vazia", "sourceCampaignMustNotBeEmpty": "A campanha de origem não pode estar vazia",
"triggerSaved": "Trigger salvo", "triggerUpdated": "Trigger updated",
"triggerUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger updated",
"triggerCreated": "Trigger created",
"triggerCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger created",
"deletingTrigger": "Excluindo o gatilho ...", "deletingTrigger": "Excluindo o gatilho ...",
"triggerDeleted": "Trigger deleted", "triggerDeleted": "Trigger deleted",
"editTrigger": "Edit Trigger", "editTrigger": "Edit Trigger",
@ -314,11 +308,12 @@
"event": "Evento", "event": "Evento",
"selectTheEventThatTriggersSendingThe": "Selecione o evento que dispara o envio da campanha.", "selectTheEventThatTriggersSendingThe": "Selecione o evento que dispara o envio da campanha.",
"enabled": "Ativado", "enabled": "Ativado",
"daysAfter": "Days after",
"latestOpen": "Últimas abertas", "latestOpen": "Últimas abertas",
"latestClick": "Último clique", "latestClick": "Último clique",
"notOpened": "não aberto", "notOpened": "não aberto",
"notClicked": "não clicado", "notClicked": "não clicado",
"daysAfter": "Days after",
"welcomeToMailtrain": "Bem-vindo ao Mailtrain ...",
"close": "Close", "close": "Close",
"countFileAdded": "{{count}} arquivo adicionado", "countFileAdded": "{{count}} arquivo adicionado",
"countFileAdded_plural": "{{count}} arquivos adicionados", "countFileAdded_plural": "{{count}} arquivos adicionados",
@ -338,7 +333,7 @@
"size": "Tamanho", "size": "Tamanho",
"download": "Download", "download": "Download",
"confirmFileDeletion": "Confirmar exclusão de arquivo", "confirmFileDeletion": "Confirmar exclusão de arquivo",
"filesareYouSureToDeleteFile": "Tem certeza de que deseja excluir o arquivo?", "areYouSureYouWantToDeleteTheFile?": "Tem certeza de que deseja excluir o arquivo?",
"dropCountFile": "Soltar o arquivo {{count}}", "dropCountFile": "Soltar o arquivo {{count}}",
"dropCountFile_plural": "Soltar arquivos {{count}}", "dropCountFile_plural": "Soltar arquivos {{count}}",
"dropFilesHere": "Soltar arquivos aqui", "dropFilesHere": "Soltar arquivos aqui",
@ -359,13 +354,32 @@
"andMore": "... e mais", "andMore": "... e mais",
"confirmDeletion": "Confirmar exclusão", "confirmDeletion": "Confirmar exclusão",
"areYouSureYouWantToDeleteName?": "Tem certeza de que deseja excluir \"{{name}}\"?", "areYouSureYouWantToDeleteName?": "Tem certeza de que deseja excluir \"{{name}}\"?",
"namespacemustBeSelected": "O ambiente deve ser selecionado", "namespaceMustBeSelected": "O ambiente deve ser selecionado",
"sourceOnGitHub": "Fonte no 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",
"mjml": "MJML", "mjml": "MJML",
"html": "HTML", "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}} entradas selecionadas.", "countEntriesSelected": "{{count}} entradas selecionadas.",
"loading-1": "Carregando ...",
"customFormMustBeSelected": "Formulário personalizado deve ser selecionado", "customFormMustBeSelected": "Formulário personalizado deve ser selecionado",
"listSaved": "Lista salva", "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",
"onestepIeNoEmailWithConfirmationLink": "Um passo (ou seja, nenhum email com o link de confirmação)", "onestepIeNoEmailWithConfirmationLink": "Um passo (ou seja, nenhum email com o link de confirmação)",
"onestepWithUnsubscriptionFormIeNoEmail": "Um passo com o formulário de cancelamento de inscrição (ou seja, nenhum email com o link de confirmação)", "onestepWithUnsubscriptionFormIeNoEmail": "Um passo com o formulário de cancelamento de inscrição (ou seja, nenhum email com o link de confirmação)",
"twostepIeAnEmailWithConfirmationLinkWill": "Dois passos (ou seja, um email com o link de confirmação será enviado)", "twostepIeAnEmailWithConfirmationLinkWill": "Dois passos (ou seja, um email com o link de confirmação será enviado)",
@ -373,6 +387,18 @@
"manualIeUnsubscriptionHasToBePerformedBy": "Manual (ou seja, a desinscrição tem que ser executada pelo administrador da lista)", "manualIeUnsubscriptionHasToBePerformedBy": "Manual (ou seja, a desinscrição tem que ser executada pelo administrador da lista)",
"defaultMailtrainForms": "Default Mailtrain Forms", "defaultMailtrainForms": "Default Mailtrain Forms",
"customFormsSelectFormBelow": "Formulários personalizados (selecione o formulário abaixo)", "customFormsSelectFormBelow": "Formulários personalizados (selecione o formulário abaixo)",
"recipientsNameTemplate": "Modelo de nome dos recipientes",
"specifyUsingMergeTagsOfThisListHowTo": "Especifique o uso de tags de mesclagem desta lista como construir o nome completo do destinatário. Este nome completo é usado como cabeçalho \"Para\"ao enviar emails.",
"emptyCustomNoFields": "Empty / Custom (no fields)",
"emptyCustomNoFields - TODO: update line above and then delete this line to mark that the translation has been fixed": "Empty / Custom (no fields)",
"nameOneField": "Name (one field)",
"nameOneField - TODO: update line above and then delete this line to mark that the translation has been fixed": "Name (one field)",
"firstNameAndLastNameTwoFields": "First name and Last name (two fields)",
"firstNameAndLastNameTwoFields - TODO: update line above and then delete this line to mark that the translation has been fixed": "First name and Last name (two fields)",
"representationOfSubscribersName": "Representation of subscriber's name",
"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": "Excluindo lista ...", "deletingList": "Excluindo lista ...",
"listDeleted": "Lista excluída", "listDeleted": "Lista excluída",
"editList": "Editar lista", "editList": "Editar lista",
@ -382,8 +408,6 @@
"contactEmailUsedInSubscriptionFormsAnd": "E-mail de contato usado em formulários de inscrição e e-mails enviados. Se não for preenchido, o e-mail admin das configurações globais será usado.", "contactEmailUsedInSubscriptionFormsAnd": "E-mail de contato usado em formulários de inscrição e e-mails enviados. Se não for preenchido, o e-mail admin das configurações globais será usado.",
"homepage": "Página inicial", "homepage": "Página inicial",
"homepageUrlUsedInSubscriptionFormsAnd": "URL da página inicial usada nos formulários de inscrição e nos e-mails enviados. Se não forem preenchidos, a página inicial padrão das configurações globais será usada.", "homepageUrlUsedInSubscriptionFormsAnd": "URL da página inicial usada nos formulários de inscrição e nos e-mails enviados. Se não forem preenchidos, a página inicial padrão das configurações globais será usada.",
"recipientsNameTemplate": "Modelo de nome dos recipientes",
"specifyUsingMergeTagsOfThisListHowTo": "Especifique o uso de tags de mesclagem desta lista como construir o nome completo do destinatário. Este nome completo é usado como cabeçalho \"Para\"ao enviar emails.",
"sendConfigurationThatWillBeUsedFor": "Configuração de envio que será usada para enviar e-mails relacionados à assinatura.", "sendConfigurationThatWillBeUsedFor": "Configuração de envio que será usada para enviar e-mails relacionados à assinatura.",
"forms": "Formulários", "forms": "Formulários",
"webAndEmailFormsAndTemplatesUsedIn": "Formulários e modelos de Web e email usados no processo de gerenciamento de assinaturas", "webAndEmailFormsAndTemplatesUsedIn": "Formulários e modelos de Web e email usados no processo de gerenciamento de assinaturas",
@ -393,10 +417,6 @@
"unsubscribeHeader": "Cabeçalho de cancelamento de inscrição", "unsubscribeHeader": "Cabeçalho de cancelamento de inscrição",
"doNotSendListUnsubscribeHeaders": "Não enviar cabeçalhos List-Unsubscribe", "doNotSendListUnsubscribeHeaders": "Não enviar cabeçalhos List-Unsubscribe",
"theCustomFormUsedForThisListYouCanCreate": "O formulário personalizado usado para esta lista. Você pode criar um formulário <1> aqui </ 1>.", "theCustomFormUsedForThisListYouCanCreate": "O formulário personalizado usado para esta lista. Você pode criar um formulário <1> aqui </ 1>.",
"fields": "Campos",
"segments": "Segmentos",
"imports": "Importações",
"customForms-1": "Formulários personalizados",
"mergeTagIsInvalidMayMustBeUppercaseAnd": "A marcação de mesclagem é inválida. A senha deve ser maiúscula e conter apenas caracteres A-Z, 0-9, _. Ela deve começar com uma letra.", "mergeTagIsInvalidMayMustBeUppercaseAnd": "A marcação de mesclagem é inválida. A senha deve ser maiúscula e conter apenas caracteres A-Z, 0-9, _. Ela deve começar com uma letra.",
"anotherFieldWithTheSameMergeTagExists": "Outro campo com a mesma tag de mesclagem existe. Por favor, escolha outra tag de mesclagem.", "anotherFieldWithTheSameMergeTagExists": "Outro campo com a mesma tag de mesclagem existe. Por favor, escolha outra tag de mesclagem.",
"groupHasToBeSelected": "O grupo deve ser selecionado", "groupHasToBeSelected": "O grupo deve ser selecionado",
@ -405,7 +425,10 @@
"defaultValueIsNotAProperlyFormatted": "O valor padrão não é uma data de aniversário formatada corretamente", "defaultValueIsNotAProperlyFormatted": "O valor padrão não é uma data de aniversário formatada corretamente",
"defaultValueIsNotOneOfTheAllowedOptions": "O valor padrão não é uma das opções permitidas", "defaultValueIsNotOneOfTheAllowedOptions": "O valor padrão não é uma das opções permitidas",
"errrorOnLineLine": "Errror on line {{line}}", "errrorOnLineLine": "Errror on line {{line}}",
"fieldSaved": "Campo salvo", "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",
"notVisible": "Not visible", "notVisible": "Not visible",
"endOfList": "Fim da lista", "endOfList": "Fim da lista",
"fieldSettings": "Field settings", "fieldSettings": "Field settings",
@ -419,7 +442,19 @@
"ddmm": "DD / MM", "ddmm": "DD / MM",
"mergeTag": "Merge Tag", "mergeTag": "Merge Tag",
"group": "Group", "group": "Group",
"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",
"containingGroup - TODO: update line above and then delete this line to mark that the translation has been fixed": "Containing group",
"selectGroupToWhichTheOptionsShouldBelong": "Selecione o grupo ao qual as opções devem pertencer.", "selectGroupToWhichTheOptionsShouldBelong": "Selecione o grupo ao qual as opções devem pertencer.",
"checkedLabel": "Checked label",
"checkedLabel - TODO: update line above and then delete this line to mark that the translation has been fixed": "Checked label",
"labelThatWillBeDisplayedInListAnd": "Label that will be displayed in list and subscription when the option is checked",
"labelThatWillBeDisplayedInListAnd - 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 checked",
"uncheckedLabel": "Unchecked label",
"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": "Excluindo campo ...", "deletingField": "Excluindo campo ...",
"fieldDeleted": "Campo excluído", "fieldDeleted": "Campo excluído",
"editField": "Editar Campo", "editField": "Editar Campo",
@ -450,6 +485,7 @@
"birthday": "Aniversário", "birthday": "Aniversário",
"jsonValueForCustomRendering": "Valor JSON para renderização customizada", "jsonValueForCustomRendering": "Valor JSON para renderização customizada",
"option": "Opção", "option": "Opção",
"fields": "Campos",
"thePlaintextVersionForThisEmail": "A versão de texto simples para este email", "thePlaintextVersionForThisEmail": "A versão de texto simples para este email",
"layout": "Layout", "layout": "Layout",
"formInputStyle": "Form Input Style", "formInputStyle": "Form Input Style",
@ -483,7 +519,10 @@
"unsubscribe": "Cancelar assinatura", "unsubscribe": "Cancelar assinatura",
"dataProtection": "Proteção de dados", "dataProtection": "Proteção de dados",
"listOfErrorsInTemplates": "Lista de erros em modelos", "listOfErrorsInTemplates": "Lista de erros em modelos",
"formsSaved": "Formulários salvos", "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": "Excluindo formulário ...", "deletingForm": "Excluindo formulário ...",
"formDeleted": "Formulário excluído", "formDeleted": "Formulário excluído",
"editCustomForms": "Editar formulários personalizados", "editCustomForms": "Editar formulários personalizados",
@ -493,6 +532,9 @@
"selectListWhoseFieldsWillBeUsedToPreview": "Selecione a lista cujos campos serão usados para visualizar os formulários.", "selectListWhoseFieldsWillBeUsedToPreview": "Selecione a lista cujos campos serão usados para visualizar os formulários.",
"noteTheseLinksAreSolelyForAQuickPreview": "Nota: Esses links são apenas para uma visualização rápida. Para obter o endereço do formulário de inscrição, vá até os assinantes da lista e clique em \"Subscription Form\".", "noteTheseLinksAreSolelyForAQuickPreview": "Nota: Esses links são apenas para uma visualização rápida. Para obter o endereço do formulário de inscrição, vá até os assinantes da lista e clique em \"Subscription Form\".",
"formPreview": "Pré-visualização do formulário:", "formPreview": "Pré-visualização do formulário:",
"refresh": "Atualizar",
"closePreview": "Close preview",
"closePreview - TODO: update line above and then delete this line to mark that the translation has been fixed": "Close preview",
"templates": "Modelos", "templates": "Modelos",
"customFormsUseMjmlForFormattingSeeThe": "Formulários personalizados usam MJML para formatação. Veja a documentação do MJML <1> aqui </ 1>", "customFormsUseMjmlForFormattingSeeThe": "Formulários personalizados usam MJML para formatação. Veja a documentação do MJML <1> aqui </ 1>",
"createCustomForm": "Criar formulário personalizado", "createCustomForm": "Criar formulário personalizado",
@ -514,8 +556,19 @@
"editImport": "Editar Importação", "editImport": "Editar Importação",
"createImport": "Criar Importação", "createImport": "Criar Importação",
"source": "Fonte", "source": "Fonte",
"csvFile": "arquivo CSV",
"preparing": "Preparando",
"stopping": "Parando",
"ready": "Pronto",
"preparationFailed": "Preparação falhou",
"running": "Running",
"failed": "Falha",
"starting": "Iniciando",
"basicImportOfSubscribers": "Importação básica de assinantes",
"unsubscribeEmails": "Cancelar subscrição de emails",
"lastRun": "Última execução", "lastRun": "Última execução",
"detailedStatus": "Estado detalhado", "detailedStatus": "Estado detalhado",
"imports": "Importações",
"row": "Linha", "row": "Linha",
"reason": "Razão", "reason": "Razão",
"importRunStatus": "Status da execução de importação", "importRunStatus": "Status da execução de importação",
@ -532,20 +585,12 @@
"started": "Iniciado", "started": "Iniciado",
"processed": "Processado", "processed": "Processado",
"new": "Novo", "new": "Novo",
"failed": "Falha",
"importStatus": "Status da importação", "importStatus": "Status da importação",
"actions": "Ações", "actions": "Ações",
"start": "Iniciar", "start": "Iniciar",
"importRuns": "Import Runs", "importRuns": "Import Runs",
"csvFile": "arquivo CSV", "segments": "Segmentos",
"preparing": "Preparando", "customForms-1": "Formulários personalizados",
"stopping": "Parando",
"ready": "Pronto",
"preparationFailed": "Preparação falhou",
"running": "Running",
"starting": "Iniciando",
"basicImportOfSubscribers": "Importação básica de assinantes",
"unsubscribeEmails": "Cancelar subscrição de emails",
"listName": "Lista \"{{name}}\"", "listName": "Lista \"{{name}}\"",
"fieldName-1": "Campo \"{{name}}\"", "fieldName-1": "Campo \"{{name}}\"",
"segmentName": "Segmento \"{{name}}\"", "segmentName": "Segmento \"{{name}}\"",
@ -553,23 +598,19 @@
"run": "Execute", "run": "Execute",
"customFormsName": "Custom Forms \"{{name}}\"", "customFormsName": "Custom Forms \"{{name}}\"",
"newRule": "Nova regra", "newRule": "Nova regra",
"segmentSaved": "Segmento salvo", "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": "Excluindo segmento ...", "deletingSegment": "Excluindo segmento ...",
"segmentDeleted": "Segmento excluído", "segmentDeleted": "Segmento excluído",
"editSegment": "Editar Segmento", "editSegment": "Editar Segmento",
"createSegment": "Criar segmento", "createSegment": "Criar segmento",
"saveAndStay": "Salvar e permanecer",
"saveAndLeave": "Salvar e sair",
"segmentOptions": "Opções de segmento", "segmentOptions": "Opções de segmento",
"toplevelMatchType": "Tipo de correspondência de nível superior", "toplevelMatchType": "Tipo de correspondência de nível superior",
"addCompositeRule": "Adicionar Regra Composta", "addCompositeRule": "Adicionar Regra Composta",
"addRule": "Adicionar regra", "addRule": "Adicionar regra",
"rules": "Regras", "rules": "Regras",
"fieldMustBeSelected": "O campo deve ser selecionado",
"field": "campo",
"select-1": "- Selecionar -",
"ruleOptions": "Opções de Regra",
"ok": "OK",
"allRulesMustMatch": "Todas as regras devem corresponder", "allRulesMustMatch": "Todas as regras devem corresponder",
"atLeastOneRuleMustMatch": "Pelo menos uma regra deve corresponder", "atLeastOneRuleMustMatch": "Pelo menos uma regra deve corresponder",
"noRuleMayMatch": "Nenhuma regra pode corresponder", "noRuleMayMatch": "Nenhuma regra pode corresponder",
@ -656,8 +697,18 @@
"emailAddress-1": "Endereço de email", "emailAddress-1": "Endereço de email",
"signupCountry": "País de inscrição", "signupCountry": "País de inscrição",
"signUpDate": "Data de inscrição", "signUpDate": "Data de inscrição",
"testUser": "Test user",
"testUser - TODO: update line above and then delete this line to mark that the translation has been fixed": "Test user",
"fieldMustBeSelected": "O campo deve ser selecionado",
"field": "campo",
"select-1": "- Selecionar -",
"ruleOptions": "Opções de Regra",
"ok": "OK",
"anotherSubscriptionWithTheSameEmail": "Já existe outra subscrição com o mesmo email.", "anotherSubscriptionWithTheSameEmail": "Já existe outra subscrição com o mesmo email.",
"susbscriptionSaved": "Susbscription saved", "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",
"itSeemsThatAnotherSubscriptionWithThe": "Parece que outra subscrição com o mesmo email foi criada entretanto. Atualize a sua página para começar de novo. Tenha em atenção que as suas alterações serão perdidas.", "itSeemsThatAnotherSubscriptionWithThe": "Parece que outra subscrição com o mesmo email foi criada entretanto. Atualize a sua página para começar de novo. Tenha em atenção que as suas alterações serão perdidas.",
"notSelected": "Não selecionado", "notSelected": "Não selecionado",
"areYouSureYouWantToDeleteSubscriptionFor": "Tem certeza de que deseja excluir a inscrição de \"{{email}} \"?", "areYouSureYouWantToDeleteSubscriptionFor": "Tem certeza de que deseja excluir a inscrição de \"{{email}} \"?",
@ -669,6 +720,8 @@
"subscriptionStatus": "Status da assinatura", "subscriptionStatus": "Status da assinatura",
"testUser?": "Usuário de teste?", "testUser?": "Usuário de teste?",
"ifCheckedThenThisSubscriptionCanBeUsed": "Se marcado, essa assinatura pode ser usada para visualizar mensagens de campanha", "ifCheckedThenThisSubscriptionCanBeUsed": "Se marcado, essa assinatura pode ser usada para visualizar mensagens de campanha",
"subscribed": "Inscrito",
"unubscribed": "Não inscrito",
"erased": "[APAGADO]", "erased": "[APAGADO]",
"confirmUnsubscription": "Confirmar a não inscrição", "confirmUnsubscription": "Confirmar a não inscrição",
"areYouSureYouWantToUnsubscribeEmail?": "Tem certeza de que deseja cancelar a inscrição {{email}}?", "areYouSureYouWantToUnsubscribeEmail?": "Tem certeza de que deseja cancelar a inscrição {{email}}?",
@ -682,10 +735,39 @@
"subscriptionForm": "Formulário de Assinatura", "subscriptionForm": "Formulário de Assinatura",
"exportAsCsv": "Exportar como CSV", "exportAsCsv": "Exportar como CSV",
"addSubscriber": "Adicionar Assinante", "addSubscriber": "Adicionar Assinante",
"subscribed": "Inscrito", "usernameOrEmailMustNotBeEmpty": "Nome de usuário ou email não deve estar vazio",
"unubscribed": "Não inscrito", "processing": "Processando ...",
"ifTheUsernameEmailExistsInTheSystem": "Se o nome de usuário / email existir no sistema, o link de redefinição de senha será enviado para o email registrado.",
"pleaseEnterYourUsernameEmailAndTryAgain": "Por favor insira seu nome de usuário / e-mail e tente novamente.",
"passwordReset": "Reset de senha",
"pleaseProvideTheUsernameOrEmailAddress": "Por favor, forneça o nome de usuário ou endereço de e-mail registrado em sua conta do Mailtrain.",
"weWillSendYouAnEmailThatWillAllowYouTo": "Nós lhe enviaremos um email que lhe permitirá redefinir sua senha.",
"usernameOrEmail": "Nome de usuário ou email",
"sendEmail": "Enviar email",
"userNameMustNotBeEmpty": "O nome do usuário não pode estar vazio",
"passwordMustNotBeEmpty": "A senha não pode estar vazia",
"verifyingCredentials": "Verificando credenciais ...",
"pleaseEnterYourCredentialsAndTryAgain": "Por favor, digite suas credenciais e tente novamente.",
"invalidUsernameOrPassword": "Nome de usuário ou senha inválidos",
"forgotYourPassword?": "Esqueceu sua senha?",
"signIn": "Entrar",
"username": "Nome de Usuário",
"password": "Senha",
"rememberMe": "Lembre-se de mim",
"resettingPassword": "Redefinindo senha ...",
"passwordReset-1": "Redefinição de senha",
"yourPasswordCannotBeReset": "Sua senha não pode ser redefinida.",
"thePasswordResetTokenHasExpired": "O token de redefinição de senha expirou.",
"clickHereToRequestANewPasswordResetLink": "Clique aqui para solicitar um novo link de redefinição de senha.",
"validatingPasswordResetToken": "Validando o token de redefinição de senha ...",
"thePasswordCannotBeReset": "A senha não pode ser redefinida",
"setNewPasswordFor": "Definir nova senha para",
"resetPassword": "Redefinir senha",
"parentNamespaceMustBeSelected": "Ambiente pai deve ser selecionado", "parentNamespaceMustBeSelected": "Ambiente pai deve ser selecionado",
"namespaceSaved": "Ambiente salvo", "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",
"thereHasBeenALoopDetectedInTheAssignment": "Houve um loop detectado na atribuição do ambiente pai. Isso é mais provável porque outra pessoa alterou o pai de algum ambiente nesse meio tempo. Atualize sua página para começar de novo. Observe que suas alterações serão estar perdido.", "thereHasBeenALoopDetectedInTheAssignment": "Houve um loop detectado na atribuição do ambiente pai. Isso é mais provável porque outra pessoa alterou o pai de algum ambiente nesse meio tempo. Atualize sua página para começar de novo. Observe que suas alterações serão estar perdido.",
"itSeemsThatTheParentNamespaceHasBeen": "Parece que o ambiente pai foi excluído por outra pessoa durante sua edição. Atualize a página para começar de novo. Observe que suas alterações serão perdidas.", "itSeemsThatTheParentNamespaceHasBeen": "Parece que o ambiente pai foi excluído por outra pessoa durante sua edição. Atualize a página para começar de novo. Observe que suas alterações serão perdidas.",
"deletingNamespace": "Excluindo ambiente ...", "deletingNamespace": "Excluindo ambiente ...",
@ -700,7 +782,10 @@
"atLeastCountItemsHaveToBeSelected": "Pelo menos {{count}} itens devem ser selecionados", "atLeastCountItemsHaveToBeSelected": "Pelo menos {{count}} itens devem ser selecionados",
"atMostCountItemsCanToBeSelected": "No máximo {{count}} itens podem ser selecionados", "atMostCountItemsCanToBeSelected": "No máximo {{count}} itens podem ser selecionados",
"reportParametersAreNotSelectedWaitFor": "Os parâmetros do relatório não estão selecionados. Espere que eles sejam exibidos e, em seguida, preencha-os.", "reportParametersAreNotSelectedWaitFor": "Os parâmetros do relatório não estão selecionados. Espere que eles sejam exibidos e, em seguida, preencha-os.",
"reportSaved": "Relatório salvo", "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",
"unknownFieldTypeType": "Tipo de campo desconhecido \"{{type}}\"", "unknownFieldTypeType": "Tipo de campo desconhecido \"{{type}}\"",
"deletingReport": "Excluindo relatório ...", "deletingReport": "Excluindo relatório ...",
"reportDeleted": "Relatório excluído", "reportDeleted": "Relatório excluído",
@ -717,19 +802,15 @@
"viewConsoleOutput": "Exibir saída do console", "viewConsoleOutput": "Exibir saída do console",
"reportTemplates": "Modelos de relatório", "reportTemplates": "Modelos de relatório",
"reports": "Relatórios", "reports": "Relatórios",
"reportName": "Denunciar {{name}}", "reportName": "Relatório \"{{name}}\"",
"loadingReport": "Carregando relatório ...",
"outputForReportName": "Saída para o relatório {{name}}",
"loadingReportOutput": "Carregando saída do relatório ...",
"reportIsBeingGenerated": "Relatório está sendo gerado",
"reportNotGenerated": "Relatório não gerado",
"refresh": "Atualizar",
"reportName-1": "Relatório \"{{name}}\"",
"output": "Output", "output": "Output",
"templateName": "Modelo \"{{name}}\"", "templateName": "Modelo \"{{name}}\"",
"mimeTypeMustBeSelected": "Tipo MIME deve ser selecionado", "mimeTypeMustBeSelected": "Tipo MIME deve ser selecionado",
"syntaxErrorInTheUserFieldsSpecification": "Erro de sintaxe na especificação dos campos do usuário", "syntaxErrorInTheUserFieldsSpecification": "Erro de sintaxe na especificação dos campos do usuário",
"reportTemplateSaved": "Modelo de relatório salvo", "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": "Excluindo modelo de relatório ...", "deletingReportTemplate": "Excluindo modelo de relatório ...",
"reportTemplateDeleted": "Modelo de relatório excluído", "reportTemplateDeleted": "Modelo de relatório excluído",
"editReportTemplate": "Editar modelo de relatório", "editReportTemplate": "Editar modelo de relatório",
@ -745,18 +826,25 @@
"openCounts": "Contagem de aberturas", "openCounts": "Contagem de aberturas",
"openCountsAsCsv": "Contagem de aberturas como CSV", "openCountsAsCsv": "Contagem de aberturas como CSV",
"aggregatedOpenCounts": "Contagem de aberturas agregadas", "aggregatedOpenCounts": "Contagem de aberturas agregadas",
"reportName-1": "Denunciar {{name}}",
"loadingReport": "Carregando relatório ...",
"outputForReportName": "Saída para o relatório {{name}}",
"loadingReportOutput": "Carregando saída do relatório ...",
"reportIsBeingGenerated": "Relatório está sendo gerado",
"reportNotGenerated": "Relatório não gerado",
"current": "(atual)", "current": "(atual)",
"toggleNavigation": "Alternar navegação",
"administration": "Administração", "administration": "Administração",
"users": "Usuários", "users": "Usuários",
"globalSettings": "Configurações globais", "globalSettings": "Configurações globais",
"sendConfigurations": "Configurações de envio", "sendConfigurations": "Configurações de envio",
"logOut": "Sair", "logOut": "Sair",
"home": "Início", "home": "Início",
"sourceOnGitHub": "Fonte no GitHub",
"mailerTypeMustBeSelected": "Tipo de mailer deve ser selecionado", "mailerTypeMustBeSelected": "Tipo de mailer deve ser selecionado",
"verpHostnameMustNotBeEmpty": "O nome do host VERP não pode estar vazio", "verpHostnameMustNotBeEmpty": "O nome do host VERP não pode estar vazio",
"sendConfigurationSaved": "Configuração de envio salva", "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": "Excluindo a configuração de envio ...", "deletingSendConfiguration": "Excluindo a configuração de envio ...",
"sendConfigurationDeleted": "Configuração de envio excluída", "sendConfigurationDeleted": "Configuração de envio excluída",
"editSendConfiguration": "Editar Configuração de Envio", "editSendConfiguration": "Editar Configuração de Envio",
@ -766,7 +854,6 @@
"overridable": "Substituível", "overridable": "Substituível",
"defaultFromName": "Nome \"de\" padrão", "defaultFromName": "Nome \"de\" padrão",
"defaultReplytoEmail": "Email \"reply-to\" padrão", "defaultReplytoEmail": "Email \"reply-to\" padrão",
"subject": "Assunto",
"xMailer": "X-Mailer", "xMailer": "X-Mailer",
"verpBounceHandling": "VERP Bounce Handling", "verpBounceHandling": "VERP Bounce Handling",
"verpStatus": "status VERP", "verpStatus": "status VERP",
@ -779,7 +866,6 @@
"toGetVerpWorkingYouNeedToSetUpADnsMx": "<0> Para obter o VERP funcionando, você precisa configurar um registro MX de DNS que aponte para o nome do host do Mailtrain. Você também deve garantir que a interface VERtr de Mailtrain esteja disponível na porta 25 do servidor. privilégios de usuário) Assim, se alguém tentar enviar um e-mail para algum usuário @ verp-hostname, o e-mail deve acabar neste servidor. </ 0> ", "toGetVerpWorkingYouNeedToSetUpADnsMx": "<0> Para obter o VERP funcionando, você precisa configurar um registro MX de DNS que aponte para o nome do host do Mailtrain. Você também deve garantir que a interface VERtr de Mailtrain esteja disponível na porta 25 do servidor. privilégios de usuário) Assim, se alguém tentar enviar um e-mail para algum usuário @ verp-hostname, o e-mail deve acabar neste servidor. </ 0> ",
"verpUsuallyOnlyWorksIfYouAreUsingYourOwn": "<0> VERP geralmente só funciona se você estiver usando seu próprio servidor SMTP. Serviços de retransmissão regulares (SES, SparkPost, Gmail etc.) tendem a remover o endereço VERP da mensagem. </ 0>", "verpUsuallyOnlyWorksIfYouAreUsingYourOwn": "<0> VERP geralmente só funciona se você estiver usando seu próprio servidor SMTP. Serviços de retransmissão regulares (SES, SparkPost, Gmail etc.) tendem a remover o endereço VERP da mensagem. </ 0>",
"verpBounceHandlingServerIsNotEnabled": "<0> O servidor de tratamento de retorno VERP não está ativado. Modifique o arquivo de configuração do servidor e reinicie o servidor para ativá-lo. </ 0>", "verpBounceHandlingServerIsNotEnabled": "<0> O servidor de tratamento de retorno VERP não está ativado. Modifique o arquivo de configuração do servidor e reinicie o servidor para ativá-lo. </ 0>",
"sendConfigurations-1": "Configurações de envio",
"labelMustNotBeEmpty": "{{label}} não deve estar vazio", "labelMustNotBeEmpty": "{{label}} não deve estar vazio",
"labelMustBeANumber": "{{label}} deve ser um número", "labelMustBeANumber": "{{label}} deve ser um número",
"genericSmtp": "SMTP genérico", "genericSmtp": "SMTP genérico",
@ -833,6 +919,7 @@
"region": "Região", "region": "Região",
"ifYouAreUsingZoneMtaThenMailtrainCan": "<0> Se você estiver usando o ZoneMTA, o Mailtrain poderá fornecer uma chave DKIM para assinar todas as mensagens de saída. Outros serviços geralmente fornecem seus próprios meios para assinar suas mensagens. </ 0>", "ifYouAreUsingZoneMtaThenMailtrainCan": "<0> Se você estiver usando o ZoneMTA, o Mailtrain poderá fornecer uma chave DKIM para assinar todas as mensagens de saída. Outros serviços geralmente fornecem seus próprios meios para assinar suas mensagens. </ 0>",
"doNotUseSensitiveKeysHereThePrivateKeyIs": "<0> Não use chaves sensíveis aqui. A chave privada não é criptografada no banco de dados. </ 0>", "doNotUseSensitiveKeysHereThePrivateKeyIs": "<0> Não use chaves sensíveis aqui. A chave privada não é criptografada no banco de dados. </ 0>",
"sendConfigurations-1": "Configurações de envio",
"globalSettingsSaved": "Configurações globais salvas", "globalSettingsSaved": "Configurações globais salvas",
"adminEmail": "email do Admin", "adminEmail": "email do Admin",
"thisEmailIsUsedAsTheMainContactAndAsA": "Este e-mail é usado como contato principal e como endereço de e-mail padrão se nenhum endereço de e-mail for especificado nas configurações de lista.", "thisEmailIsUsedAsTheMainContactAndAsA": "Este e-mail é usado como contato principal e como endereço de e-mail padrão se nenhum endereço de e-mail for especificado nas configurações de lista.",
@ -858,19 +945,55 @@
"userMustNotBeEmpty": "O usuário não deve estar vazio", "userMustNotBeEmpty": "O usuário não deve estar vazio",
"roleMustBeSelected": "A função deve ser selecionada", "roleMustBeSelected": "A função deve ser selecionada",
"role": "Papel", "role": "Papel",
"unshare": "Unshare",
"unshare - TODO: update line above and then delete this line to mark that the translation has been fixed": "Unshare",
"confirmUnsharing": "Confirm Unsharing",
"confirmUnsharing - TODO: update line above and then delete this line to mark that the translation has been fixed": "Confirm Unsharing",
"areYouSureYouWantToRemoveTheShareToUser": "Are you sure you want to remove the share to user \"{{username}}\"?",
"areYouSureYouWantToRemoveTheShareToUser - 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 share to user \"{{username}}\"?",
"removingShareForUserUsername": "Removing share for user \"{{username}}\"",
"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": "Adicionar usuário", "addUser": "Adicionar usuário",
"user": "Usuário", "user": "Usuário",
"existingUsers": "Usuários Existentes", "existingUsers": "Usuários 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}}\"",
"removingSharingOfTheTypeNameName - TODO: update line above and then delete this line to mark that the translation has been fixed": "Removing sharing of the {{typeName}} \"{{name}}\"",
"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": "Compartilhamentos para usuário \"{{username}}\"", "sharesForUserUsername": "Compartilhamentos para usuário \"{{username}}\"",
"templateSaved": "Modelo salvo", "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": "Modelos Mosaico",
"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",
"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": "Excluindo o modelo ...", "deletingTemplate": "Excluindo o modelo ...",
"templateDeleted": "Modelo excluído", "templateDeleted": "Modelo excluído",
"editTemplate": "Editar modelo", "editTemplate": "Editar modelo",
"createTemplate": "Criar modelo", "createTemplate": "Criar modelo",
"saveAndEditTemplate": "Salvar e editar modelo", "cloneFromAnExistingTemplate": "Clone from an existing template",
"mosaicoTemplates": "Modelos Mosaico", "cloneFromAnExistingTemplate - TODO: update line above and then delete this line to mark that the translation has been fixed": "Clone from an existing template",
"sendConfigurationHasToBeSelected": "A configuração de envio deve ser selecionada.",
"listHasToBeSelected": "Lista tem que ser selecionada.",
"mosaico": "Mosaico", "mosaico": "Mosaico",
"templateContentHtml": "Conteúdo do modelo (HTML)", "templateContentHtml": "Conteúdo do modelo (HTML)",
"mosaicoTemplateDesigner": "Editor do Modelo Mosaico", "mosaicoTemplateDesigner": "Editor do Modelo Mosaico",
@ -890,7 +1013,6 @@
"urlThatPointsToTheUnsubscribePage": "URL que aponta para a página de cancelamento de inscrição", "urlThatPointsToTheUnsubscribePage": "URL que aponta para a página de cancelamento de inscrição",
"urlThatPointsToThePreferencesPageOfThe": "URL que aponta para a página de preferências do assinante", "urlThatPointsToThePreferencesPageOfThe": "URL que aponta para a página de preferências do assinante",
"urlToPreviewTheMessageInABrowser": "URL para visualizar a mensagem em um navegador", "urlToPreviewTheMessageInABrowser": "URL para visualizar a mensagem em um navegador",
"recipientNameAsItAppearsInEmailsToHeader": "Nome do destinatário como aparece no cabeçalho 'Para' do email",
"uniqueIdThatIdentifiesTheRecipient": "ID exclusivo que identifica o destinatário", "uniqueIdThatIdentifiesTheRecipient": "ID exclusivo que identifica o destinatário",
"uniqueIdThatIdentifiesTheListUsedForThis": "ID exclusivo que identifica a lista usada para esta campanha", "uniqueIdThatIdentifiesTheListUsedForThis": "ID exclusivo que identifica a lista usada para esta campanha",
"uniqueIdThatIdentifiesCurrentCampaign": "ID exclusivo que identifica a campanha atual", "uniqueIdThatIdentifiesCurrentCampaign": "ID exclusivo que identifica a campanha atual",
@ -902,19 +1024,37 @@
"rssEntrySummary": "Resumo da entrada do RSS", "rssEntrySummary": "Resumo da entrada do RSS",
"rssEntryImageUrl": "URL da imagem de entrada RSS", "rssEntryImageUrl": "URL da imagem de entrada RSS",
"toExtractTheTextFromHtmlClickHerePlease": "Para extrair o texto do HTML, clique <1> aqui </ 1>. Observe que o texto original existente no campo acima será sobrescrito. Esse recurso usa a <3> Premailer API </ 3>, uma serviço de terceiros. Os seus Termos de Serviço e Política de Privacidade são aplicáveis. ", "toExtractTheTextFromHtmlClickHerePlease": "Para extrair o texto do HTML, clique <1> aqui </ 1>. Observe que o texto original existente no campo acima será sobrescrito. Esse recurso usa a <3> Premailer API </ 3>, uma serviço de terceiros. Os seus Termos de Serviço e Política de Privacidade são aplicáveis. ",
"mosaicoTemplateSaved": "Modelo Mosaico salvo", "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": "Excluindo o modelo Mosaico ...", "deletingMosaicoTemplate": "Excluindo o modelo Mosaico ...",
"mosaicoTemplateDeleted": "Modelo do Mosaico excluído", "mosaicoTemplateDeleted": "Modelo do Mosaico excluído",
"editMosaicoTemplate": "Editar Modelo Mosaico", "editMosaicoTemplate": "Editar Modelo Mosaico",
"createMosaicoTemplate": "Criar Modelo Mosaico", "createMosaicoTemplate": "Criar Modelo Mosaico",
"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": "Conteúdo do modelo",
"validate": "Validate",
"validate - TODO: update line above and then delete this line to mark that the translation has been fixed": "Validate",
"blockThumbnails": "Bloquear miniaturas", "blockThumbnails": "Bloquear miniaturas",
"versafixOne": "Versafix One", "versafixOne": "Versafix One",
"templateContent": "Conteúdo do modelo", "mjmlSample": "MJML Sample",
"mjmlSample - TODO: update line above and then delete this line to mark that the translation has been fixed": "MJML Sample",
"mosaicoTemplateName": "Modelo Mosaico \"{{name}}\"", "mosaicoTemplateName": "Modelo Mosaico \"{{name}}\"",
"theseFilesArePubliclyAvailableViaHttpSo-1": "Esses arquivos estão disponíveis publicamente via HTTP para que possam ser vinculados a partir do modelo Mosaico.", "theseFilesArePubliclyAvailableViaHttpSo-1": "Esses arquivos estão disponíveis publicamente via HTTP para que possam ser vinculados a partir do modelo Mosaico.",
"theseFilesWillBeUsedByMosaicoToSearchFor": "Esses arquivos serão usados pelo Mosaico para procurar miniaturas de blocos (o diretório \"edres \"). Coloque aqui um arquivo por tipo de bloco que você definiu no modelo Mosaico. Cada arquivo deve ter o mesmo nome como o id do bloco. O arquivo será usado como a miniatura do bloco correspondente. ", "theseFilesWillBeUsedByMosaicoToSearchFor": "Esses arquivos serão usados pelo Mosaico para procurar miniaturas de blocos (o diretório \"edres \"). Coloque aqui um arquivo por tipo de bloco que você definiu no modelo Mosaico. Cada arquivo deve ter o mesmo nome como o id do bloco. O arquivo será usado como a miniatura do bloco correspondente. ",
"sendConfigurationHasToBeSelected": "A configuração de envio deve ser selecionada.",
"listHasToBeSelected": "Lista tem que ser selecionada.",
"theUserNameAlreadyExistsInTheSystem": "O nome de usuário já existe no sistema.", "theUserNameAlreadyExistsInTheSystem": "O nome de usuário já existe no sistema.",
"userSaved": "Usuário salvo", "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": "O nome de usuário já está atribuído a outro usuário.", "theUsernameIsAlreadyAssignedToAnother": "O nome de usuário já está atribuído a outro usuário.",
"theEmailIsAlreadyAssignedToAnotherUser-1": "O email já está atribuído a outro usuário.", "theEmailIsAlreadyAssignedToAnotherUser-1": "O email já está atribuído a outro usuário.",
"deletingUser": "Excluindo usuário ...", "deletingUser": "Excluindo usuário ...",
@ -926,7 +1066,7 @@
"deleteUser": "Excluir usuário", "deleteUser": "Excluir usuário",
"userName-1": "Usuário \"{{name}} \"", "userName-1": "Usuário \"{{name}} \"",
"shares": "Compartilhamentos", "shares": "Compartilhamentos",
"subscriptionconfirmed": "Assinatura Confirmada", "subscriptionConfirmed": "Assinatura Confirmada",
"listEmailAddressAlreadyRegistered": "{{list}}: Endereço de e-mail já registrado", "listEmailAddressAlreadyRegistered": "{{list}}: Endereço de e-mail já registrado",
"listPleaseConfirmEmailChangeIn": "{{list}}: Por favor, confirme a alteração do email na subscrição", "listPleaseConfirmEmailChangeIn": "{{list}}: Por favor, confirme a alteração do email na subscrição",
"pleaseConfirmSubscription": "Por favor, confirme a assinatura", "pleaseConfirmSubscription": "Por favor, confirme a assinatura",
@ -935,7 +1075,7 @@
"invalidEmailAddressEmailMxRecordNotFound": "Endereço de e-mail inválido \"{{email}} \": registro MX não encontrado para o domínio", "invalidEmailAddressEmailMxRecordNotFound": "Endereço de e-mail inválido \"{{email}} \": registro MX não encontrado para o domínio",
"invalidEmailAddressEmailAddressDomainNot": "Endereço de e-mail inválido \"{{email}} \": domínio de endereço não encontrado", "invalidEmailAddressEmailAddressDomainNot": "Endereço de e-mail inválido \"{{email}} \": domínio de endereço não encontrado",
"invalidEmailAddressEmailAddressDomain": "Endereço de e-mail inválido \"{{email}} \": é necessário o nome do domínio do endereço", "invalidEmailAddressEmailAddressDomain": "Endereço de e-mail inválido \"{{email}} \": é necessário o nome do domínio do endereço",
"invalidEmailGeneric": "Endereço de e-mail inválido \"{{email}} \"", "invalidEmailAddressEmail": "Endereço de e-mail inválido \"{{email}} \"",
"mailerPasswordChangeRequest": "Solicitação de mudança de senha do Mailer", "mailerPasswordChangeRequest": "Solicitação de mudança de senha do Mailer",
"mailtrain": "Mailtrain", "mailtrain": "Mailtrain",
"emailAddressChanged": "Endereço de e-mail alterado", "emailAddressChanged": "Endereço de e-mail alterado",
@ -950,8 +1090,6 @@
"downloadSignatureVerificationKey": "Baixar chave de verificação de assinatura", "downloadSignatureVerificationKey": "Baixar chave de verificação de assinatura",
"beginsWithAnd#39BeginPgpPublicKeyBloc": "Começa com & # 39; ----- BEGIN BLOCO DE CHAVES PÚBLICAS DO PGP -----", "beginsWithAnd#39BeginPgpPublicKeyBloc": "Começa com & # 39; ----- BEGIN BLOCO DE CHAVES PÚBLICAS DO PGP -----",
"insertYourGpgPublicKeyHereToEncrypt": "Insira aqui a sua chave pública GPG para criptografar as mensagens enviadas para o seu endereço <em> (opcional) </ em>", "insertYourGpgPublicKeyHereToEncrypt": "Insira aqui a sua chave pública GPG para criptografar as mensagens enviadas para o seu endereço <em> (opcional) </ em>",
"warning!": "Aviso!",
"javaScriptMustBeEnabledInOrderForThis": "O JavaScript deve estar ativado para que este formulário funcione",
"existingEmailAddress": "Endereço de e-mail existente", "existingEmailAddress": "Endereço de e-mail existente",
"newEmailAddress": "Novo endereço de email", "newEmailAddress": "Novo endereço de email",
"youWillReceiveAConfirmationRequestToYour": "Você receberá uma solicitação de confirmação para o seu novo endereço de e-mail que você precisa aceitar antes que seu e-mail seja realmente alterado", "youWillReceiveAConfirmationRequestToYour": "Você receberá uma solicitação de confirmação para o seu novo endereço de e-mail que você precisa aceitar antes que seu e-mail seja realmente alterado",
@ -964,10 +1102,5 @@
"thePasswordMustContainAtLeastOne": "A senha deve conter pelo menos uma letra minúscula", "thePasswordMustContainAtLeastOne": "A senha deve conter pelo menos uma letra minúscula",
"thePasswordMustContainAtLeastOne-1": "A senha deve conter pelo menos uma letra maiúscula", "thePasswordMustContainAtLeastOne-1": "A senha deve conter pelo menos uma letra maiúscula",
"thePasswordMustContainAtLeastOneNumber": "A senha deve conter pelo menos um número", "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"
"templateData": "Dados passados para o modelo ao compilar com o Handlebars",
"templateVariables": "Mapa de variáveis template / subject a substituir",
"sendTransactionalEmail": "Enviar email transacional",
"sendSingleEmailByTemplateId": "Enviar modelo único por: templateId",
"sendConfigurationId": "ID da configuração usada para criar a instância do mailer"
} }

View file

@ -26,7 +26,7 @@ async function sendSubscriptionConfirmed(locale, list, email, subscription) {
unsubscribeUrl: '/subscription/' + list.cid + '/unsubscribe/' + subscription.cid unsubscribeUrl: '/subscription/' + list.cid + '/unsubscribe/' + subscription.cid
}; };
await _sendMail(list, email, 'subscription_confirmed', locale, tMark('subscriptionconfirmed'), relativeUrls, subscription); await _sendMail(list, email, 'subscription_confirmed', locale, tMark('subscriptionConfirmed'), relativeUrls, subscription);
} }
async function sendAlreadySubscribed(locale, list, email, subscription) { async function sendAlreadySubscribed(locale, list, email, subscription) {

View file

@ -142,7 +142,7 @@ function validateEmailGetMessage(result, address, language) {
case 12: case 12:
return t('invalidEmailAddressEmailAddressDomain', {email: address}); return t('invalidEmailAddressEmailAddressDomain', {email: address});
default: default:
return t('invalidEmailGeneric', {email: address}); return t('invalidEmailAddressEmail', {email: address});
} }
} }
} }