Add translatiosn for newsletter creation and listings
This commit is contained in:
@@ -2,12 +2,14 @@ define(
|
||||
[
|
||||
'react',
|
||||
'react-router',
|
||||
'classnames'
|
||||
'classnames',
|
||||
'mailpoet'
|
||||
],
|
||||
function(
|
||||
React,
|
||||
Router,
|
||||
classNames
|
||||
classNames,
|
||||
MailPoet
|
||||
) {
|
||||
var Link = Router.Link;
|
||||
|
||||
@@ -21,20 +23,20 @@ define(
|
||||
steps: [
|
||||
{
|
||||
name: 'type',
|
||||
label: 'Select type',
|
||||
label: MailPoet.I18n.t('selectType'),
|
||||
link: '/new'
|
||||
},
|
||||
{
|
||||
name: 'template',
|
||||
label: 'Template'
|
||||
label: MailPoet.I18n.t('template')
|
||||
},
|
||||
{
|
||||
name: 'editor',
|
||||
label: 'Designer'
|
||||
label: MailPoet.I18n.t('designer')
|
||||
},
|
||||
{
|
||||
name: 'send',
|
||||
label: 'Send'
|
||||
label: MailPoet.I18n.t('send')
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -73,4 +75,4 @@ define(
|
||||
|
||||
return Breadcrumb;
|
||||
}
|
||||
);
|
||||
);
|
||||
|
@@ -4,39 +4,41 @@ define(
|
||||
'react-router',
|
||||
'listing/listing.jsx',
|
||||
'classnames',
|
||||
'jquery'
|
||||
'jquery',
|
||||
'mailpoet'
|
||||
],
|
||||
function(
|
||||
React,
|
||||
Router,
|
||||
Listing,
|
||||
classNames,
|
||||
jQuery
|
||||
jQuery,
|
||||
MailPoet
|
||||
) {
|
||||
var Link = Router.Link;
|
||||
|
||||
var columns = [
|
||||
{
|
||||
name: 'subject',
|
||||
label: 'Subject',
|
||||
label: MailPoet.I18n.t('subject'),
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: 'Status'
|
||||
label: MailPoet.I18n.t('status')
|
||||
},
|
||||
{
|
||||
name: 'segments',
|
||||
label: 'Lists'
|
||||
label: MailPoet.I18n.t('lists')
|
||||
},
|
||||
{
|
||||
name: 'created_at',
|
||||
label: 'Created on',
|
||||
label: MailPoet.I18n.t('createdOn'),
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
name: 'updated_at',
|
||||
label: 'Last modified on',
|
||||
label: MailPoet.I18n.t('lastModifiedOn'),
|
||||
sortable: true
|
||||
}
|
||||
];
|
||||
@@ -48,11 +50,11 @@ define(
|
||||
|
||||
if(count === 1) {
|
||||
message = (
|
||||
'1 newsletter was moved to the trash.'
|
||||
MailPoet.I18n.t('oneNewsletterTrashed')
|
||||
);
|
||||
} else {
|
||||
message = (
|
||||
'%$1d newsletters were moved to the trash.'
|
||||
MailPoet.I18n.t('multipleNewslettersTrashed')
|
||||
).replace('%$1d', count);
|
||||
}
|
||||
MailPoet.Notice.success(message);
|
||||
@@ -63,11 +65,11 @@ define(
|
||||
|
||||
if(count === 1) {
|
||||
message = (
|
||||
'1 newsletter was permanently deleted.'
|
||||
MailPoet.I18n.t('oneNewsletterDeleted')
|
||||
);
|
||||
} else {
|
||||
message = (
|
||||
'%$1d newsletters were permanently deleted.'
|
||||
MailPoet.I18n.t('multipleNewslettersDeleted')
|
||||
).replace('%$1d', count);
|
||||
}
|
||||
MailPoet.Notice.success(message);
|
||||
@@ -78,11 +80,11 @@ define(
|
||||
|
||||
if(count === 1) {
|
||||
message = (
|
||||
'1 newsletter has been restored from the trash.'
|
||||
MailPoet.I18n.t('oneNewsletterRestored')
|
||||
);
|
||||
} else {
|
||||
message = (
|
||||
'%$1d newsletters have been restored from the trash.'
|
||||
MailPoet.I18n.t('multipleNewslettersRestored')
|
||||
).replace('%$1d', count);
|
||||
}
|
||||
MailPoet.Notice.success(message);
|
||||
@@ -92,7 +94,7 @@ define(
|
||||
var bulk_actions = [
|
||||
{
|
||||
name: 'trash',
|
||||
label: 'Trash',
|
||||
label: MailPoet.I18n.t('trash'),
|
||||
onSuccess: messages.onTrash
|
||||
}
|
||||
];
|
||||
@@ -103,7 +105,7 @@ define(
|
||||
link: function(item) {
|
||||
return (
|
||||
<a href={ `?page=mailpoet-newsletter-editor&id=${ item.id }` }>
|
||||
Edit
|
||||
{MailPoet.I18n.t('edit')}
|
||||
</a>
|
||||
);
|
||||
}
|
||||
@@ -137,7 +139,7 @@ define(
|
||||
renderStatus: function(item) {
|
||||
if(!item.queue) {
|
||||
return (
|
||||
<span>Not sent yet.</span>
|
||||
<span>{MailPoet.I18n.t('notSentYet')}</span>
|
||||
);
|
||||
} else {
|
||||
var progressClasses = classNames(
|
||||
@@ -155,9 +157,11 @@ define(
|
||||
if(item.queue.status === 'completed') {
|
||||
label = (
|
||||
<span>
|
||||
Sent to {
|
||||
item.queue.count_processed - item.queue.count_failed
|
||||
} out of { item.queue.count_total }.
|
||||
{
|
||||
MailPoet.I18n.t('newsletterQueueCompleted')
|
||||
.replace("%$1d", item.queue.count_processed - item.queue.count_failed)
|
||||
.replace("%$2d", item.queue.count_total)
|
||||
}
|
||||
</span>
|
||||
);
|
||||
} else {
|
||||
@@ -171,14 +175,14 @@ define(
|
||||
style={{ display: (item.queue.status === 'paused') ? 'inline-block': 'none' }}
|
||||
href="javascript:;"
|
||||
onClick={ this.resumeSending.bind(null, item) }
|
||||
>Resume</a>
|
||||
>{MailPoet.I18n.t('resume')}</a>
|
||||
<a
|
||||
id={ 'pause_'+item.id }
|
||||
className="button mailpoet_pause"
|
||||
style={{ display: (item.queue.status === null) ? 'inline-block': 'none' }}
|
||||
href="javascript:;"
|
||||
onClick={ this.pauseSending.bind(null, item) }
|
||||
>Pause</a>
|
||||
>{MailPoet.I18n.t('pause')}</a>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
@@ -239,7 +243,7 @@ define(
|
||||
return (
|
||||
<div>
|
||||
<h2 className="title">
|
||||
Newsletters <Link className="add-new-h2" to="/new">New</Link>
|
||||
{MailPoet.I18n.t('pageTitle')} <Link className="add-new-h2" to="/new">{MailPoet.I18n.t('new')}</Link>
|
||||
</h2>
|
||||
|
||||
<Listing
|
||||
@@ -258,4 +262,4 @@ define(
|
||||
|
||||
return NewsletterList;
|
||||
}
|
||||
);
|
||||
);
|
||||
|
@@ -21,21 +21,20 @@ define(
|
||||
var fields = [
|
||||
{
|
||||
name: 'subject',
|
||||
label: 'Subject line',
|
||||
tip: "Be creative! It's the first thing your subscribers see."+
|
||||
"Tempt them to open your email.",
|
||||
label: MailPoet.I18n.t('subjectLine'),
|
||||
tip: MailPoet.I18n.t('subjectLineTip'),
|
||||
type: 'text',
|
||||
validation: {
|
||||
'data-parsley-required': true,
|
||||
'data-parsley-required-message': 'You need to specify a subject.'
|
||||
'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError')
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'segments',
|
||||
label: 'Segments',
|
||||
tip: "The subscriber segment that will be used for this campaign.",
|
||||
label: MailPoet.I18n.t('segments'),
|
||||
tip: MailPoet.I18n.t('segmentsTip'),
|
||||
type: 'selection',
|
||||
placeholder: "Select a segment",
|
||||
placeholder: MailPoet.I18n.t('selectSegmentPlaceholder'),
|
||||
id: "mailpoet_segments",
|
||||
endpoint: "segments",
|
||||
multiple: true,
|
||||
@@ -44,18 +43,18 @@ define(
|
||||
},
|
||||
validation: {
|
||||
'data-parsley-required': true,
|
||||
'data-parsley-required-message': 'You need to select a segment.'
|
||||
'data-parsley-required-message': MailPoet.I18n.t('noSegmentsSelectedError')
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'sender',
|
||||
label: 'Sender',
|
||||
tip: "Name & email of yourself or your company.",
|
||||
label: MailPoet.I18n.t('sender'),
|
||||
tip: MailPoet.I18n.t('senderTip'),
|
||||
fields: [
|
||||
{
|
||||
name: 'sender_name',
|
||||
type: 'text',
|
||||
placeholder: 'John Doe',
|
||||
placeholder: MailPoet.I18n.t('senderNamePlaceholder'),
|
||||
defaultValue: (settings.sender !== undefined) ? settings.sender.name : '',
|
||||
validation: {
|
||||
'data-parsley-required': true
|
||||
@@ -64,7 +63,7 @@ define(
|
||||
{
|
||||
name: 'sender_address',
|
||||
type: 'text',
|
||||
placeholder: 'john.doe@email.com',
|
||||
placeholder: MailPoet.I18n.t('senderAddressPlaceholder'),
|
||||
defaultValue: (settings.sender !== undefined) ? settings.sender.address : '',
|
||||
validation: {
|
||||
'data-parsley-required': true,
|
||||
@@ -75,21 +74,20 @@ define(
|
||||
},
|
||||
{
|
||||
name: 'reply-to',
|
||||
label: 'Reply-to',
|
||||
tip: 'When the subscribers hit "reply" this is who will receive their '+
|
||||
'email.',
|
||||
label: MailPoet.I18n.t('replyTo'),
|
||||
tip: MailPoet.I18n.t('replyToTip'),
|
||||
inline: true,
|
||||
fields: [
|
||||
{
|
||||
name: 'reply_to_name',
|
||||
type: 'text',
|
||||
placeholder: 'John Doe',
|
||||
placeholder: MailPoet.I18n.t('replyToNamePlaceholder'),
|
||||
defaultValue: (settings.reply_to !== undefined) ? settings.reply_to.name : '',
|
||||
},
|
||||
{
|
||||
name: 'reply_to_address',
|
||||
type: 'text',
|
||||
placeholder: 'john.doe@email.com',
|
||||
placeholder: MailPoet.I18n.t('replyToAddressPlaceholder'),
|
||||
defaultValue: (settings.reply_to !== undefined) ? settings.reply_to.address : ''
|
||||
},
|
||||
]
|
||||
@@ -98,10 +96,10 @@ define(
|
||||
|
||||
var messages = {
|
||||
onUpdate: function() {
|
||||
MailPoet.Notice.success('Newsletter successfully updated!');
|
||||
MailPoet.Notice.success(MailPoet.I18n.t('newsletterUpdated'));
|
||||
},
|
||||
onCreate: function() {
|
||||
MailPoet.Notice.success('Newsletter successfully added!');
|
||||
MailPoet.Notice.success(MailPoet.I18n.t('newsletterAdded'));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -138,15 +136,14 @@ define(
|
||||
if(response.result === true) {
|
||||
this.history.pushState(null, '/');
|
||||
MailPoet.Notice.success(
|
||||
'The newsletter is being sent...'
|
||||
MailPoet.I18n.t('newsletterIsBeingSent')
|
||||
);
|
||||
} else {
|
||||
if(response.errors) {
|
||||
MailPoet.Notice.error(response.errors);
|
||||
} else {
|
||||
MailPoet.Notice.error(
|
||||
'An error occurred while trying to send. '+
|
||||
'<a href="?page=mailpoet-settings">Check your settings.</a>'
|
||||
MailPoet.I18n.t('newsletterSendingError').replace("%$1s", '?page=mailpoet-settings')
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -157,7 +154,7 @@ define(
|
||||
render: function() {
|
||||
return (
|
||||
<div>
|
||||
<h1>Final step: last details</h1>
|
||||
<h1>{MailPoet.I18n.t('finalNewsletterStep')}</h1>
|
||||
|
||||
<Breadcrumb step="send" />
|
||||
|
||||
@@ -174,18 +171,18 @@ define(
|
||||
className="button button-primary"
|
||||
type="button"
|
||||
onClick={ this.handleSend }
|
||||
value="Send" />
|
||||
value={MailPoet.I18n.t('send')} />
|
||||
|
||||
<input
|
||||
className="button button-secondary"
|
||||
type="submit"
|
||||
value="Save as draft and close" />
|
||||
or simply
|
||||
value={MailPoet.I18n.t('saveDraftAndClose')} />
|
||||
{MailPoet.I18n.t('orSimply')}
|
||||
<a
|
||||
href={
|
||||
'?page=mailpoet-newsletter-editor&id='+this.props.params.id
|
||||
}>
|
||||
go back to design
|
||||
{MailPoet.I18n.t('goBackToDesign')}
|
||||
</a>.
|
||||
</p>
|
||||
</Form>
|
||||
@@ -196,4 +193,4 @@ define(
|
||||
|
||||
return NewsletterSend;
|
||||
}
|
||||
);
|
||||
);
|
||||
|
@@ -54,7 +54,7 @@ define(
|
||||
try {
|
||||
saveTemplate(JSON.parse(e.target.result));
|
||||
} catch (err) {
|
||||
MailPoet.Notice.error('This template file appears to be malformed. Please try another one.');
|
||||
MailPoet.Notice.error(MailPoet.I18n.t('templateFileMalformedError'));
|
||||
}
|
||||
}.bind(this);
|
||||
|
||||
@@ -63,15 +63,15 @@ define(
|
||||
render: function() {
|
||||
return (
|
||||
<div>
|
||||
<h2>Import a template</h2>
|
||||
<h2>{MailPoet.I18n.t('importTemplateTitle')}</h2>
|
||||
<form onSubmit={this.handleSubmit}>
|
||||
<input type="file" placeholder="Select a .json file to upload" ref="templateFile" />
|
||||
<input type="file" placeholder={MailPoet.I18n.t('selectJsonFileToUpload')} ref="templateFile" />
|
||||
|
||||
<p className="submit">
|
||||
<input
|
||||
className="button button-primary"
|
||||
type="submit"
|
||||
value="Upload" />
|
||||
value={MailPoet.I18n.t('upload')} />
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
@@ -108,9 +108,9 @@ define(
|
||||
response = [
|
||||
{
|
||||
name:
|
||||
"MailPoet's Guide",
|
||||
MailPoet.I18n.t('mailpoetGuideTemplateTitle'),
|
||||
description:
|
||||
"This is the standard template that comes with MailPoet.",
|
||||
MailPoet.I18n.t('mailpoetGuideTemplateDescription'),
|
||||
readonly: "1"
|
||||
}
|
||||
]
|
||||
@@ -155,7 +155,9 @@ define(
|
||||
this.setState({ loading: true });
|
||||
if(
|
||||
window.confirm(
|
||||
'You are about to delete the template named "'+ template.name +'"'
|
||||
(
|
||||
MailPoet.I18n.t('confirmTemplateDeletion')
|
||||
).replace("%$1s", template.name)
|
||||
)
|
||||
) {
|
||||
MailPoet.Ajax.post({
|
||||
@@ -187,7 +189,7 @@ define(
|
||||
href="javascript:;"
|
||||
onClick={ this.handleDeleteTemplate.bind(null, template) }
|
||||
>
|
||||
Delete
|
||||
{MailPoet.I18n.t('delete')}
|
||||
</a>
|
||||
</div>
|
||||
), thumbnail = '';
|
||||
@@ -218,7 +220,7 @@ define(
|
||||
className="button button-primary"
|
||||
onClick={ this.handleSelectTemplate.bind(null, template) }
|
||||
>
|
||||
Select
|
||||
{MailPoet.I18n.t('select')}
|
||||
</a>
|
||||
|
||||
<a
|
||||
@@ -226,7 +228,7 @@ define(
|
||||
className="button button-secondary"
|
||||
onClick={ this.handlePreviewTemplate.bind(null, template) }
|
||||
>
|
||||
Preview
|
||||
{MailPoet.I18n.t('preview')}
|
||||
</a>
|
||||
</div>
|
||||
{ (template.readonly === "1") ? false : deleteLink }
|
||||
@@ -242,7 +244,7 @@ define(
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h1>Select a template</h1>
|
||||
<h1>{MailPoet.I18n.t('selectTemplateTitle')}</h1>
|
||||
|
||||
<Breadcrumb step="template" />
|
||||
|
||||
|
@@ -26,7 +26,7 @@ define(
|
||||
action: 'create',
|
||||
data: {
|
||||
type: type,
|
||||
subject: 'Draft newsletter',
|
||||
subject: MailPoet.I18n.t('draftNewsletterTitle'),
|
||||
}
|
||||
}).done(function(response) {
|
||||
if(response.result && response.newsletter.id) {
|
||||
@@ -43,7 +43,7 @@ define(
|
||||
render: function() {
|
||||
return (
|
||||
<div>
|
||||
<h1>Pick a type of campaign</h1>
|
||||
<h1>{MailPoet.I18n.t('pickCampaignType')}</h1>
|
||||
|
||||
<Breadcrumb step="type" />
|
||||
|
||||
@@ -52,10 +52,9 @@ define(
|
||||
<div className="mailpoet_thumbnail"></div>
|
||||
|
||||
<div className="mailpoet_description">
|
||||
<h3>Newsletter</h3>
|
||||
<h3>{MailPoet.I18n.t('regularNewsletterTypeTitle')}</h3>
|
||||
<p>
|
||||
Send a newsletter with images, buttons, dividers,
|
||||
and social bookmarks. Or a simple email.
|
||||
{MailPoet.I18n.t('regularNewsletterTypeDescription')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -64,7 +63,7 @@ define(
|
||||
className="button button-primary"
|
||||
onClick={ this.createNewsletter.bind(null, 'standard') }
|
||||
>
|
||||
Create
|
||||
{MailPoet.I18n.t('create')}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
@@ -73,9 +72,9 @@ define(
|
||||
<div className="mailpoet_thumbnail"></div>
|
||||
|
||||
<div className="mailpoet_description">
|
||||
<h3>Welcome email</h3>
|
||||
<h3>{MailPoet.I18n.t('welcomeNewsletterTypeTitle')}</h3>
|
||||
<p>
|
||||
Send an email for new users.
|
||||
{MailPoet.I18n.t('welcomeNewsletterTypeDescription')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -84,7 +83,7 @@ define(
|
||||
className="button button-primary"
|
||||
onClick={ this.setupNewsletter.bind(null, 'welcome') }
|
||||
>
|
||||
Set up
|
||||
{MailPoet.I18n.t('setUp')}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
@@ -93,9 +92,9 @@ define(
|
||||
<div className="mailpoet_thumbnail"></div>
|
||||
|
||||
<div className="mailpoet_description">
|
||||
<h3>Post notifications</h3>
|
||||
<h3>{MailPoet.I18n.t('postNotificationNewsletterTypeTitle')}</h3>
|
||||
<p>
|
||||
Automatically send posts immediately, daily, weekly or monthly. Filter by categories, if you like.
|
||||
{MailPoet.I18n.t('postNotificationsNewsletterTypeDescription')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -104,7 +103,7 @@ define(
|
||||
className="button button-primary"
|
||||
onClick={ this.setupNewsletter.bind(null, 'notification') }
|
||||
>
|
||||
Set up
|
||||
{MailPoet.I18n.t('setUp')}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
@@ -25,11 +25,11 @@ define(
|
||||
var intervalField = {
|
||||
name: 'interval',
|
||||
values: {
|
||||
'daily': 'Once a day at...',
|
||||
'weekly': 'Weekly on...',
|
||||
'monthly': 'Monthly on the...',
|
||||
'nthWeekDay': 'Monthly every...',
|
||||
'immediately': 'Immediately.',
|
||||
'daily': MailPoet.I18n.t('daily'),
|
||||
'weekly': MailPoet.I18n.t('weekly'),
|
||||
'monthly': MailPoet.I18n.t('monthly'),
|
||||
'nthWeekDay': MailPoet.I18n.t('monthlyEvery'),
|
||||
'immediately': MailPoet.I18n.t('immediately'),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -53,13 +53,13 @@ define(
|
||||
var weekDayField = {
|
||||
name: 'weekDay',
|
||||
values: {
|
||||
0: 'Sunday',
|
||||
1: 'Monday',
|
||||
2: 'Tuesday',
|
||||
3: 'Wednesday',
|
||||
4: 'Thursday',
|
||||
5: 'Friday',
|
||||
6: 'Saturday'
|
||||
0: MailPoet.I18n.t('sunday'),
|
||||
1: MailPoet.I18n.t('monday'),
|
||||
2: MailPoet.I18n.t('tuesday'),
|
||||
3: MailPoet.I18n.t('wednesday'),
|
||||
4: MailPoet.I18n.t('thursday'),
|
||||
5: MailPoet.I18n.t('friday'),
|
||||
6: MailPoet.I18n.t('saturday')
|
||||
},
|
||||
};
|
||||
|
||||
@@ -69,14 +69,19 @@ define(
|
||||
values: _.object(_.map(
|
||||
_.times(NUMBER_OF_DAYS_IN_MONTH, function(day) { return day; }),
|
||||
function(day) {
|
||||
var suffixes = {
|
||||
0: 'st',
|
||||
1: 'nd',
|
||||
2: 'rd'
|
||||
};
|
||||
var suffix = suffixes[day] || 'th';
|
||||
var labels = {
|
||||
0: MailPoet.I18n.t('first'),
|
||||
1: MailPoet.I18n.t('second'),
|
||||
2: MailPoet.I18n.t('third')
|
||||
},
|
||||
label;
|
||||
if (labels[day] !== undefined) {
|
||||
label = labels[day];
|
||||
} else {
|
||||
label = MailPoet.I18n.t('nth').replace("%$1d", day + 1);
|
||||
}
|
||||
|
||||
return [day, (day + 1).toString() + suffix];
|
||||
return [day, label];
|
||||
},
|
||||
)),
|
||||
};
|
||||
@@ -84,10 +89,10 @@ define(
|
||||
var nthWeekDayField = {
|
||||
name: 'nthWeekDay',
|
||||
values: {
|
||||
'1': '1st',
|
||||
'2': '2nd',
|
||||
'3': '3rd',
|
||||
'L': 'last',
|
||||
'1': MailPoet.I18n.t('first'),
|
||||
'2': MailPoet.I18n.t('second'),
|
||||
'3': MailPoet.I18n.t('third'),
|
||||
'L': MailPoet.I18n.t('last'),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -197,7 +202,7 @@ define(
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h1>Post notifications</h1>
|
||||
<h1>{MailPoet.I18n.t('postNotificationNewsletterTypeTitle')}</h1>
|
||||
<Breadcrumb step="type" />
|
||||
|
||||
<Select
|
||||
@@ -215,7 +220,7 @@ define(
|
||||
className="button button-primary"
|
||||
type="button"
|
||||
onClick={ this.handleNext }
|
||||
value="Next" />
|
||||
value={MailPoet.I18n.t('next')} />
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
@@ -47,7 +47,7 @@ define(
|
||||
render: function() {
|
||||
return (
|
||||
<div>
|
||||
<h1>Newsletter</h1>
|
||||
<h1>{MailPoet.I18n.t('regularNewsletterTypeTitle')}</h1>
|
||||
<Breadcrumb step="type" />
|
||||
</div>
|
||||
);
|
||||
|
@@ -28,8 +28,8 @@ define(
|
||||
var events = {
|
||||
name: 'event',
|
||||
values: {
|
||||
'segment': 'When someone subscribes to the list...',
|
||||
'user': 'When a new Wordrpess user is added to your site...',
|
||||
'segment': MailPoet.I18n.t('onSubscriptionToList'),
|
||||
'user': MailPoet.I18n.t('onWordpressUserRegistration'),
|
||||
}
|
||||
};
|
||||
|
||||
@@ -57,10 +57,10 @@ define(
|
||||
var afterTimeTypeField = {
|
||||
name: 'afterTimeType',
|
||||
values: {
|
||||
'immediate': 'immediately',
|
||||
'hours': 'hour(s) after',
|
||||
'days': 'day(s) after',
|
||||
'weeks': 'week(s) after',
|
||||
'immediate': MailPoet.I18n.t('delayImmediately'),
|
||||
'hours': MailPoet.I18n.t('delayHoursAfter'),
|
||||
'days': MailPoet.I18n.t('delayDaysAfter'),
|
||||
'weeks': MailPoet.I18n.t('delayWeeksAfter'),
|
||||
}
|
||||
};
|
||||
|
||||
@@ -152,7 +152,7 @@ define(
|
||||
}
|
||||
return (
|
||||
<div>
|
||||
<h1>Welcome email</h1>
|
||||
<h1>{MailPoet.I18n.t('welcomeNewsletterTypeTitle')}</h1>
|
||||
<Breadcrumb step="type" />
|
||||
|
||||
<h3>{MailPoet.I18n.t('selectEventToSendWelcomeEmail')}</h3>
|
||||
@@ -176,7 +176,7 @@ define(
|
||||
className="button button-primary"
|
||||
type="button"
|
||||
onClick={ this.handleNext }
|
||||
value="Next" />
|
||||
value={MailPoet.I18n.t('next')} />
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
@@ -21,6 +21,105 @@
|
||||
'selectedAllLabel': __('All %d newsletters are selected.'),
|
||||
'selectAllLink': __('Select all newsletters on all pages.'),
|
||||
'clearSelection': __('Clear selection.'),
|
||||
'permanentlyDeleted': __('%d newsletters permanently deleted.')
|
||||
'permanentlyDeleted': __('%d newsletters permanently deleted.'),
|
||||
|
||||
'selectType': __('Select type'),
|
||||
'template': __('Template'),
|
||||
'designer': __('Designer'),
|
||||
'send': __('Send'),
|
||||
|
||||
'subject': __('Subject'),
|
||||
'status': __('Status'),
|
||||
'lists': __('Lists'),
|
||||
'createdOn': __('Created on'),
|
||||
'lastModifiedOn': __('Last modified on'),
|
||||
'oneNewsletterTrashed': __('1 newsletter was moved to the trash.'),
|
||||
'multipleNewslettersTrashed': __('%$1d newsletters were moved to the trash.'),
|
||||
'oneNewsletterDeleted': __('1 newsletter was permanently deleted.'),
|
||||
'multipleNewslettersDeleted': __('%$1d newsletters were permanently deleted.'),
|
||||
'oneNewsletterRestored': __('1 newsletter has been restored from the trash.'),
|
||||
'multipleNewslettersRestored': __('%$1d newsletters have been restored from the trash.'),
|
||||
'trash': __('Trash'),
|
||||
'edit': __('Edit'),
|
||||
'notSentYet': __('Not sent yet.'),
|
||||
'newsletterQueueCompleted': __('Sent to %$1d of %$2d.'),
|
||||
'resume': __('Resume'),
|
||||
'pause': __('Pause'),
|
||||
'new': __('New'),
|
||||
|
||||
'templateFileMalformedError': __('This template file appears to be malformed. Please try another one.'),
|
||||
'importTemplateTitle': __('Import a template'),
|
||||
'selectJsonFileToUpload': __('Select a .json file to upload'),
|
||||
'upload': __('Upload'),
|
||||
'mailpoetGuideTemplateTitle': __("MailPoet's Guide"),
|
||||
'mailpoetGuideTemplateDescription': __("This is the standard template that comes with MailPoet."),
|
||||
'confirmTemplateDeletion': __('You are about to delete the template named "%$1s"'),
|
||||
'delete': __('Delete'),
|
||||
'select': __('Select'),
|
||||
'preview': __('Preview'),
|
||||
'selectTemplateTitle': __('Select a template'),
|
||||
|
||||
'draftNewsletterTitle': __('Draft newsletter'),
|
||||
'pickCampaignType': __('Pick a type of campaign'),
|
||||
'regularNewsletterTypeTitle': __('Newsletter'),
|
||||
'regularNewsletterTypeDescription': __('Send a newsletter with images, buttons, dividers, and social bookmarks. Or a simple email.'),
|
||||
'create': __('Create'),
|
||||
'welcomeNewsletterTypeTitle': __('Welcome email'),
|
||||
'welcomeNewsletterTypeDescription': __('Send an email for new users.'),
|
||||
'setUp': __('Set up'),
|
||||
'postNotificationNewsletterTypeTitle': __('Post notifications'),
|
||||
'postNotificationsNewsletterTypeDescription': __('Automatically send posts immediately, daily, weekly or monthly. Filter by categories, if you like.'),
|
||||
|
||||
'daily': __('Once a day at...'),
|
||||
'weekly': __('Weekly on...'),
|
||||
'monthly': __('Monthly on the...'),
|
||||
'monthlyEvery': __('Monthly every...'),
|
||||
'immediately': __('Immediately.'),
|
||||
'sunday': __('Sunday'),
|
||||
'monday': __('Monday'),
|
||||
'tuesday': __('Tuesday'),
|
||||
'wednesday': __('Wednesday'),
|
||||
'thursday': __('Thursday'),
|
||||
'friday': __('Friday'),
|
||||
'saturday': __('Saturday'),
|
||||
'first': __('1st'),
|
||||
'second': __('2nd'),
|
||||
'third': __('3rd'),
|
||||
'nth': __('%$1dth'),
|
||||
'last': __('last'),
|
||||
'next': __('Next'),
|
||||
|
||||
'selectEventToSendWelcomeEmail': __('Select an event to send this welcome email'),
|
||||
|
||||
'onSubscriptionToList': __('When someone subscribes to the list...'),
|
||||
'onWordpressUserRegistration': __('When a new Wordrpess user is added to your site...'),
|
||||
'delayImmediately': __('immediately'),
|
||||
'delayHoursAfter': __('hour(s) after'),
|
||||
'delayDaysAfter': __('day(s) after'),
|
||||
'delayWeeksAfter': __('week(s) after'),
|
||||
|
||||
'subjectLine': __('Subject line'),
|
||||
'subjectLineTip': __("Be creative! It's the first thing your subscribers see. Tempt them to open your email."),
|
||||
'emptySubjectLineError': __('You need to specify a subject.'),
|
||||
'segments': __('Segments'),
|
||||
'segmentsTip': __('The subscriber segment that will be used for this campaign.'),
|
||||
'selectSegmentPlaceholder': __('Select a segment'),
|
||||
'noSegmentsSelectedError': __('You need to select a segment.'),
|
||||
'sender': __('Sender'),
|
||||
'senderTip': __('Name & email of yourself or your company.'),
|
||||
'senderNamePlaceholder': __('John Doe'),
|
||||
'senderAddressPlaceholder': __('john.doe@email.com'),
|
||||
'replyTo': __('Reply-to'),
|
||||
'replyToTip': __('When the subscribers hit "reply" this is who will receive their email.'),
|
||||
'replyToNamePlaceholder': __('John Doe'),
|
||||
'replyToAddressPlaceholder': __('john.doe@email.com'),
|
||||
'newsletterUpdated': __('Newsletter successfully updated!'),
|
||||
'newsletterAdded': __('Newsletter successfully added!'),
|
||||
'newsletterIsBeingSent': __('The newsletter is being sent...'),
|
||||
'newsletterSendingError': __('An error occurred while trying to send. <a href="%$1s">Check your settings.</a>'),
|
||||
'finalNewsletterStep': __('Final step: last details'),
|
||||
'saveDraftAndClose': __('Save as draft and close'),
|
||||
'orSimply': __('or simply'),
|
||||
'goBackToDesign': __('go back to design'),
|
||||
}) %>
|
||||
<% endblock %>
|
||||
|
Reference in New Issue
Block a user