From ccab8b4cf39117aa09b627a373c27bf42c1e8373 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tautvidas=20Sipavi=C4=8Dius?=
Date: Fri, 18 Mar 2016 16:25:43 +0200
Subject: [PATCH] Add MailPoet.I18n for basic translation handling, removed
MailPoetI18n
---
assets/js/src/cron.jsx | 4 +-
assets/js/src/i18n.js | 25 +++++
assets/js/src/listing/listing.jsx | 14 +--
assets/js/src/listing/search.jsx | 10 +-
.../blocks/automatedLatestContent.js | 2 +-
.../js/src/newsletter_editor/blocks/footer.js | 2 +-
.../js/src/newsletter_editor/blocks/header.js | 2 +-
.../js/src/newsletter_editor/blocks/posts.js | 6 +-
.../js/src/newsletter_editor/blocks/text.js | 2 +-
.../src/newsletter_editor/components/save.js | 14 +--
.../newsletter_editor/components/sidebar.js | 6 +-
assets/js/src/newsletters/types/welcome.jsx | 2 +-
.../js/src/subscribers/importExport/export.js | 4 +-
.../js/src/subscribers/importExport/import.js | 94 +++++++++----------
lib/Twig/i18n.php | 3 +-
views/forms.html | 14 +--
views/layout.html | 7 +-
views/newsletter/editor.html | 3 +-
views/newsletters.html | 16 ++--
views/segments.html | 2 +
views/subscribers/importExport/export.html | 14 +--
views/subscribers/importExport/import.html | 26 ++---
views/subscribers/subscribers.html | 16 ++--
webpack.config.js | 1 +
24 files changed, 169 insertions(+), 120 deletions(-)
create mode 100644 assets/js/src/i18n.js
diff --git a/assets/js/src/cron.jsx b/assets/js/src/cron.jsx
index 6aeef12929..3bc73099c3 100644
--- a/assets/js/src/cron.jsx
+++ b/assets/js/src/cron.jsx
@@ -48,7 +48,7 @@ define(
})
.done(function(response) {
if(!response.result) {
- MailPoet.Notice.error(MailPoetI18n.daemonControlError);
+ MailPoet.Notice.error(MailPoet.I18n.t('daemonControlError'));
}
}.bind(this));
},
@@ -103,4 +103,4 @@ define(
container
);
}
-});
\ No newline at end of file
+});
diff --git a/assets/js/src/i18n.js b/assets/js/src/i18n.js
new file mode 100644
index 0000000000..08ae45f629
--- /dev/null
+++ b/assets/js/src/i18n.js
@@ -0,0 +1,25 @@
+define('i18n',
+ [
+ 'mailpoet',
+ 'underscore',
+ ], function(
+ MailPoet,
+ _
+) {
+ 'use strict';
+
+ var translations = {};
+
+ MailPoet.I18n = {
+ add: function(key, value) {
+ translations[key] = value;
+ },
+ t: function(key) {
+ return translations[key] || 'TRANSLATION NOT FOUND';
+ },
+ all: function() {
+ return translations;
+ }
+ };
+
+});
diff --git a/assets/js/src/listing/listing.jsx b/assets/js/src/listing/listing.jsx
index 5503221f32..88fc4ba75d 100644
--- a/assets/js/src/listing/listing.jsx
+++ b/assets/js/src/listing/listing.jsx
@@ -223,8 +223,8 @@ define(
className="colspanchange">
{
(this.props.loading === true)
- ? MailPoetI18n.loadingItems
- : MailPoetI18n.noItemsFound
+ ? MailPoet.I18n.t('loadingItems')
+ : MailPoet.I18n.t('noItemsFound')
}
@@ -250,8 +250,8 @@ define(
}>
{
(this.props.selection !== 'all')
- ? MailPoetI18n.selectAllLabel
- : MailPoetI18n.selectedAllLabel.replace(
+ ? MailPoet.I18n.t('selectAllLabel')
+ : MailPoet.I18n.t('selectedAllLabel').replace(
'%d',
this.props.count
)
@@ -261,8 +261,8 @@ define(
onClick={ this.props.onSelectAll }
href="javascript:;">{
(this.props.selection !== 'all')
- ? MailPoetI18n.selectAllLink
- : MailPoetI18n.clearSelection
+ ? MailPoet.I18n.t('selectAllLink')
+ : MailPoet.I18n.t('clearSelection')
}
@@ -519,7 +519,7 @@ define(
group: 'trash'
}, function(response) {
MailPoet.Notice.success(
- MailPoetI18n.permanentlyDeleted.replace('%d', response)
+ MailPoet.I18n.t('permanentlyDeleted').replace('%d', response)
);
});
},
diff --git a/assets/js/src/listing/search.jsx b/assets/js/src/listing/search.jsx
index 72f39f0cfb..953605f42a 100644
--- a/assets/js/src/listing/search.jsx
+++ b/assets/js/src/listing/search.jsx
@@ -1,4 +1,10 @@
-define(['react'], function(React) {
+define([
+ 'mailpoet',
+ 'react'
+ ], function(
+ MailPoet,
+ React
+ ) {
var ListingSearch = React.createClass({
handleSearch: function(e) {
@@ -28,7 +34,7 @@ define(['react'], function(React) {
defaultValue={this.props.search} />
diff --git a/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js b/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js
index 8cfa6fab8e..72b5db8ac7 100644
--- a/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js
+++ b/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js
@@ -83,7 +83,7 @@ define([
that.get('_container').get('blocks').reset(content, {parse: true});
that.trigger('postsChanged');
}).fail(function(error) {
- MailPoet.Notice.error(App.getConfig().get('translations.failedToFetchRenderedPosts'));
+ MailPoet.Notice.error(MailPoet.I18n.t('failedToFetchRenderedPosts'));
});
},
/**
diff --git a/assets/js/src/newsletter_editor/blocks/footer.js b/assets/js/src/newsletter_editor/blocks/footer.js
index 4aba80c7f2..46193574f0 100644
--- a/assets/js/src/newsletter_editor/blocks/footer.js
+++ b/assets/js/src/newsletter_editor/blocks/footer.js
@@ -79,7 +79,7 @@ define([
},
mailpoet_custom_fields: App.getConfig().get('customFields').toJSON(),
- mailpoet_custom_fields_window_title: App.getConfig().get('translations.customFieldsWindowTitle'),
+ mailpoet_custom_fields_window_title: MailPoet.I18n.t('customFieldsWindowTitle'),
});
},
});
diff --git a/assets/js/src/newsletter_editor/blocks/header.js b/assets/js/src/newsletter_editor/blocks/header.js
index e7f6aa4f2e..f02b83b65c 100644
--- a/assets/js/src/newsletter_editor/blocks/header.js
+++ b/assets/js/src/newsletter_editor/blocks/header.js
@@ -79,7 +79,7 @@ define([
},
mailpoet_custom_fields: App.getConfig().get('customFields').toJSON(),
- mailpoet_custom_fields_window_title: App.getConfig().get('translations.customFieldsWindowTitle'),
+ mailpoet_custom_fields_window_title: MailPoet.I18n.t('customFieldsWindowTitle'),
});
},
});
diff --git a/assets/js/src/newsletter_editor/blocks/posts.js b/assets/js/src/newsletter_editor/blocks/posts.js
index acc806e5a3..3746645533 100644
--- a/assets/js/src/newsletter_editor/blocks/posts.js
+++ b/assets/js/src/newsletter_editor/blocks/posts.js
@@ -101,7 +101,7 @@ define([
that.get('_selectedPosts').reset(); // Empty out the collection
that.trigger('change:_availablePosts');
}).fail(function() {
- MailPoet.Notice.error(App.getConfig().get('translations.failedToFetchAvailablePosts'));
+ MailPoet.Notice.error(MailPoet.I18n.t('failedToFetchAvailablePosts'));
});
},
_refreshTransformedPosts: function() {
@@ -118,7 +118,7 @@ define([
CommunicationComponent.getTransformedPosts(data).done(function(posts) {
that.get('_transformedPosts').get('blocks').reset(posts, {parse: true});
}).fail(function() {
- MailPoet.Notice.error(App.getConfig().get('translations.failedToFetchRenderedPosts'));
+ MailPoet.Notice.error(MailPoet.I18n.t('failedToFetchRenderedPosts'));
});
},
_insertSelectedPosts: function() {
@@ -134,7 +134,7 @@ define([
CommunicationComponent.getTransformedPosts(data).done(function(posts) {
collection.add(posts, { at: index });
}).fail(function() {
- MailPoet.Notice.error(App.getConfig().get('translations.failedToFetchRenderedPosts'));
+ MailPoet.Notice.error(MailPoet.I18n.t('failedToFetchRenderedPosts'));
});
},
});
diff --git a/assets/js/src/newsletter_editor/blocks/text.js b/assets/js/src/newsletter_editor/blocks/text.js
index 1d015c7cf3..2810eb3b62 100644
--- a/assets/js/src/newsletter_editor/blocks/text.js
+++ b/assets/js/src/newsletter_editor/blocks/text.js
@@ -77,7 +77,7 @@ define([
},
mailpoet_custom_fields: App.getConfig().get('customFields').toJSON(),
- mailpoet_custom_fields_window_title: App.getConfig().get('translations.customFieldsWindowTitle'),
+ mailpoet_custom_fields_window_title: MailPoet.I18n.t('customFieldsWindowTitle'),
});
}
},
diff --git a/assets/js/src/newsletter_editor/components/save.js b/assets/js/src/newsletter_editor/components/save.js
index a0aa36456e..94cda1b7da 100644
--- a/assets/js/src/newsletter_editor/components/save.js
+++ b/assets/js/src/newsletter_editor/components/save.js
@@ -191,7 +191,7 @@ define([
if (templateName === '') {
MailPoet.Notice.error(
- App.getConfig().get('translations.templateNameMissing'),
+ MailPoet.I18n.t('templateNameMissing'),
{
positionAfter: that.$el,
scroll: true,
@@ -199,7 +199,7 @@ define([
);
} else if (templateDescription === '') {
MailPoet.Notice.error(
- App.getConfig().get('translations.templateDescriptionMissing'),
+ MailPoet.I18n.t('templateDescriptionMissing'),
{
positionAfter: that.$el,
scroll: true,
@@ -211,7 +211,7 @@ define([
description: templateDescription,
}).done(function() {
MailPoet.Notice.success(
- App.getConfig().get('translations.templateSaved'),
+ MailPoet.I18n.t('templateSaved'),
{
positionAfter: that.$el,
scroll: true,
@@ -219,7 +219,7 @@ define([
);
}).fail(function() {
MailPoet.Notice.error(
- App.getConfig().get('translations.templateSaveFailed'),
+ MailPoet.I18n.t('templateSaveFailed'),
{
positionAfter: that.$el,
scroll: true,
@@ -244,7 +244,7 @@ define([
if (templateName === '') {
MailPoet.Notice.error(
- App.getConfig().get('translations.templateNameMissing'),
+ MailPoet.I18n.t('templateNameMissing'),
{
positionAfter: that.$el,
scroll: true,
@@ -252,7 +252,7 @@ define([
);
} else if (templateDescription === '') {
MailPoet.Notice.error(
- App.getConfig().get('translations.templateDescriptionMissing'),
+ MailPoet.I18n.t('templateDescriptionMissing'),
{
positionAfter: that.$el,
scroll: true,
@@ -285,7 +285,7 @@ define([
if (App.getConfig().get('validation.validateUnsubscribeLinkPresent') &&
JSON.stringify(jsonObject).indexOf("[subscription:unsubscribe_url]") < 0) {
- this.showValidationError(App.getConfig().get('translations.unsubscribeLinkMissing'));
+ this.showValidationError(MailPoet.I18n.t('unsubscribeLinkMissing'));
return;
}
diff --git a/assets/js/src/newsletter_editor/components/sidebar.js b/assets/js/src/newsletter_editor/components/sidebar.js
index 85fff4fc40..b7c5c1945e 100644
--- a/assets/js/src/newsletter_editor/components/sidebar.js
+++ b/assets/js/src/newsletter_editor/components/sidebar.js
@@ -265,7 +265,7 @@ define([
if (data.subscriber.length <= 0) {
MailPoet.Notice.error(
- App.getConfig().get('translations.newsletterPreviewEmailMissing'),
+ MailPoet.I18n.t('newsletterPreviewEmailMissing'),
{
positionAfter: $emailField,
scroll: true,
@@ -279,7 +279,7 @@ define([
CommunicationComponent.previewNewsletter(data).done(function(response) {
if(response.result !== undefined && response.result === true) {
- MailPoet.Notice.success(App.getConfig().get('translations.newsletterPreviewSent'), { scroll: true });
+ MailPoet.Notice.success(MailPoet.I18n.t('newsletterPreviewSent'), { scroll: true });
} else {
if (_.isArray(response.errors)) {
response.errors.map(function(error) {
@@ -287,7 +287,7 @@ define([
});
} else {
MailPoet.Notice.error(
- App.getConfig().get('translations.newsletterPreviewFailedToSend'),
+ MailPoet.I18n.t('newsletterPreviewFailedToSend'),
{
scroll: true,
static: true,
diff --git a/assets/js/src/newsletters/types/welcome.jsx b/assets/js/src/newsletters/types/welcome.jsx
index 3163b47542..fbd56cf199 100644
--- a/assets/js/src/newsletters/types/welcome.jsx
+++ b/assets/js/src/newsletters/types/welcome.jsx
@@ -155,7 +155,7 @@ define(
Welcome email
- {MailPoetI18n.selectEventToSendWelcomeEmail}
+ {MailPoet.I18n.t('selectEventToSendWelcomeEmail')}