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')}