diff --git a/ghost/email-service/i18n-setup.js b/ghost/email-service/i18n-setup.js
new file mode 100644
index 00000000000..c164d65e89b
--- /dev/null
+++ b/ghost/email-service/i18n-setup.js
@@ -0,0 +1,15 @@
+const i18nLib = require('../i18n');
+const {settingsCache} = require('../core/core/frontend/services/proxy');
+
+let locale = settingsCache.get('locale') || 'en';
+
+const i18nLanguage = locale;
+const i18n = i18nLib(i18nLanguage, 'newsletter');
+
+function t(key, options) {
+ console.log('key is', key, "hash is", options?.hash );
+ let hash = options?.hash;
+ return i18n.t(key, hash);
+}
+
+module.exports = { t }
\ No newline at end of file
diff --git a/ghost/email-service/lib/EmailRenderer.js b/ghost/email-service/lib/EmailRenderer.js
index aba30e32507..41e132011cf 100644
--- a/ghost/email-service/lib/EmailRenderer.js
+++ b/ghost/email-service/lib/EmailRenderer.js
@@ -11,6 +11,7 @@ const tpl = require('@tryghost/tpl');
const {EmailAddressParser} = require('@tryghost/email-addresses');
const {registerHelpers} = require('./helpers/register-helpers');
const crypto = require('crypto');
+const {t} = require('../i18n-setup');
const messages = {
subscriptionStatus: {
@@ -671,15 +672,17 @@ class EmailRenderer {
id: 'status',
getValue: (member) => {
if (member.status === 'comped') {
- return 'complimentary';
+ return t('complimentary');
}
if (this.isMemberTrialing(member)) {
- return 'trialing';
+ return t('trialing');
}
- return member.status;
+ // other possible statuses: t('free'), t('paid') //
+ return t(member.status);
}
},
{
+ //TODO i18n
id: 'status_text',
getValue: (member) => {
return this.getMemberStatusText(member);
@@ -748,7 +751,6 @@ class EmailRenderer {
}
delete replacement.originalId;
}
-
return replacements;
}
diff --git a/ghost/email-service/lib/email-templates/partials/feedback-button-mobile.hbs b/ghost/email-service/lib/email-templates/partials/feedback-button-mobile.hbs
index 8064f20b5b1..afd07045abe 100644
--- a/ghost/email-service/lib/email-templates/partials/feedback-button-mobile.hbs
+++ b/ghost/email-service/lib/email-templates/partials/feedback-button-mobile.hbs
@@ -1,6 +1,7 @@
- {{buttonText}}
+ {{t buttonText}}
+ {{!-- Button text possible values: {{t 'More like this'}} {{t 'Less like this'}} {{t 'Comment'}} --}}
|
\ No newline at end of file
diff --git a/ghost/email-service/lib/email-templates/template.hbs b/ghost/email-service/lib/email-templates/template.hbs
index f99551134fc..c8fc3ee57b0 100644
--- a/ghost/email-service/lib/email-templates/template.hbs
+++ b/ghost/email-service/lib/email-templates/template.hbs
@@ -91,15 +91,15 @@
@@ -183,7 +183,7 @@
{{#if latestPosts.length}}
-
+
{{> latestPosts}}
|
@@ -192,19 +192,19 @@
{{#if newsletter.showSubscriptionDetails}}
- Subscription details
+ {{t 'Subscription details'}}
- You are receiving this because you are a %%{status}%% subscriber to {{site.title}}. %%{status_text}%%
+ {{{t "You are receiving this because you are a %%{status}%% subscriber to {site}." site=site.title }}} %%{status_text}%%
@@ -219,7 +219,7 @@
|
{{/if}}
-
+
{{#if showBadge }}
diff --git a/ghost/email-service/lib/helpers/register-helpers.js b/ghost/email-service/lib/helpers/register-helpers.js
index 8d097f251a8..4a3cdbd54b5 100644
--- a/ghost/email-service/lib/helpers/register-helpers.js
+++ b/ghost/email-service/lib/helpers/register-helpers.js
@@ -51,5 +51,10 @@ module.exports = {
return options.inverse(this);
}
});
+
+ handlebars.registerHelper('t', function (key, options) {
+ let i18n = require('../../i18n-setup');
+ return i18n.t(key, options);
+ });
}
};
diff --git a/ghost/i18n/lib/i18n.js b/ghost/i18n/lib/i18n.js
index 6bac99fb224..b228c4cb3d3 100644
--- a/ghost/i18n/lib/i18n.js
+++ b/ghost/i18n/lib/i18n.js
@@ -62,10 +62,17 @@ const SUPPORTED_LOCALES = [
/**
* @param {string} [lng]
- * @param {'ghost'|'portal'|'test'|'signup-form'|'comments'|'search'} ns
+ * @param {'ghost'|'portal'|'test'|'signup-form'|'comments'|'search'|'newsletter'} ns
*/
module.exports = (lng = 'en', ns = 'portal') => {
const i18nextInstance = i18next.createInstance();
+ let interpolation = {};
+ if (ns === 'newsletter') {
+ interpolation = {
+ prefix: "{",
+ suffix: "}",
+ }
+ }
i18nextInstance.init({
lng,
@@ -82,6 +89,9 @@ module.exports = (lng = 'en', ns = 'portal') => {
ns: ns,
defaultNS: ns,
+ // separators
+ interpolation,
+
resources: SUPPORTED_LOCALES.reduce((acc, locale) => {
const res = require(`../locales/${locale}/${ns}.json`);
diff --git a/ghost/i18n/locales/af/newsletter.json b/ghost/i18n/locales/af/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/af/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ar/newsletter.json b/ghost/i18n/locales/ar/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ar/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/bg/newsletter.json b/ghost/i18n/locales/bg/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/bg/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/bn/newsletter.json b/ghost/i18n/locales/bn/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/bn/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/bs/newsletter.json b/ghost/i18n/locales/bs/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/bs/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ca/newsletter.json b/ghost/i18n/locales/ca/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ca/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/context.json b/ghost/i18n/locales/context.json
index 70430f00e75..f1351a98bc6 100644
--- a/ghost/i18n/locales/context.json
+++ b/ghost/i18n/locales/context.json
@@ -22,6 +22,7 @@
"Become a paid member of {{publication}} to start commenting.": "A call to action letting people know they need to become paid members before commenting",
"Billing info": "A label for the user billing information section",
"Black Friday": "An example offer name",
+ "By {authors}": "",
"Cancel": "Button text",
"Cancel anytime.": "A label explaining that the trial can be cancelled at any time",
"Cancel subscription": "A button to cancel a paid subscription",
@@ -123,12 +124,15 @@
"Jamie Larson": "An unisex name of a person we use in examples",
"Join the discussion": "Placeholder value of the comments input box",
"Just now": "Time indication when a comment has been posted 'just now'",
+ "Keep reading": "",
"Less like this": "A label for the thumbs-down response in member feedback at the bottom of emails",
"Local resident": "Example of an expertise of a person used in comments when editing your expertise",
"Make sure emails aren't accidentally ending up in the Spam or Promotions folders of your inbox. If they are, click on \"Mark as not spam\" and/or \"Move to inbox\".": "Paragraph in the email receiving FAQ",
"Manage": "A button for managing settings",
+ "Manage subscription": "",
"Maybe later": "An informal phrase to dismiss or close a popup",
"Member discussion": "Default title for the comments section on a post",
+ "Member since": "",
"Memberships unavailable, contact the owner for access.": "Inform a user that memberships are only available by contacting the site owner",
"Monthly": "A label to indicate a monthly payment cadence",
"More like this": "A label for the thumbs-up response in member feedback at the bottom of emails",
@@ -207,6 +211,7 @@
"Submit feedback": "A button for submitting member feedback",
"Subscribe": "Title of a section for subscribing to a newsletter",
"Subscribed": "Status of a newsletter which a member has subscribed to",
+ "Subscription details": "",
"Subscription plan updated successfully": "",
"Success": "Status indicator for a notification",
"Success! Check your email for magic link to sign-in.": "Notification text when the user has been sent a magic link to sign-in",
@@ -246,6 +251,7 @@
"Try free for {{amount}} days, then {{originalPrice}}.": "A label for an offer with a free trial",
"Unable to initiate checkout session": "",
"Unlock access to all newsletters by becoming a paid subscriber.": "A message to encourage members to upgrade to a paid subscription",
+ "Unsubscribe": "",
"Unsubscribe from all emails": "A button on the unsubscribe page, offering a shortcut to unsubscribe from every newsletter at the same time",
"Unsubscribed": "Status of a newsletter which a user has not subscribed to",
"Unsubscribed from all emails.": "",
@@ -255,6 +261,7 @@
"Upgrade now": "Button text in the comments section, when you need to be a paid member in order to post a comment",
"Verification link sent, check your inbox": "Instruction to check email for recommendation verification",
"Verify your email address is correct": "A section title in the email receiving FAQ",
+ "View in browser": "",
"View plans": "A button to view available plans",
"We couldn't unsubscribe you as the email address was not found. Please contact the site owner.": "An error message when an unsubscribe link is clicked, but we don't have any record of the address being unsubscribed. Probably because the email address on the account has been changed.",
"Welcome back to {{siteTitle}}!": "A login confirmation message",
@@ -266,6 +273,7 @@
"Why has my email been disabled?": "A section title from the email suppression FAQ",
"Yearly": "A label indicating an annual payment cadence",
"Yesterday": "Time a comment was placed",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
"You can also copy & paste this URL into your browser:": "Descriptive text displayed underneath the buttons in login/signup emails, right before authentication URLs which can be copy/pasted",
"You currently have a free membership, upgrade to a paid subscription for full access.": "A message indicating that the member is using a free subcription, and could access more content with a paid subscription",
"You have been successfully resubscribed": "A confirmation message when a member has had emails turned off, but they have been successfully turned back on",
@@ -281,14 +289,23 @@
"Your account": "A label indicating member account details",
"Your email address": "Placeholder text in an input field",
"Your email has failed to resubscribe, please try again": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
"Your input helps shape what gets published.": "Descriptive text displayed on the member feedback UI, telling people how their feedback is used",
"Your request will be sent to the owner of this site.": "Descriptive text displayed in the report comment modal",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
"Your subscription will expire on {{expiryDate}}": "A message indicating when the member's subscription will expire",
+ "Your subscription will renew on {date}.": "",
"Your subscription will renew on {{renewalDate}}": "A message indicating when the member's subscription will be renewed",
"Your subscription will start on {{subscriptionStart}}": "A message for trial users indicating when their subscription will start",
+ "complimentary": "",
"edited": "",
+ "free": "",
"jamie@example.com": "Placeholder for email input field",
"month": "the subscription interval (monthly), following the /",
+ "paid": "",
+ "trialing": "",
"year": "the subscription interval (monthly), following the /",
"{{amount}} characters left": "Characters left, shown above the input field, when editing your expertise in the comments app",
"{{amount}} comments": "Amount of comments on a post",
diff --git a/ghost/i18n/locales/cs/newsletter.json b/ghost/i18n/locales/cs/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/cs/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/da/newsletter.json b/ghost/i18n/locales/da/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/da/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/de-CH/newsletter.json b/ghost/i18n/locales/de-CH/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/de-CH/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/de/newsletter.json b/ghost/i18n/locales/de/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/de/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/el/newsletter.json b/ghost/i18n/locales/el/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/el/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/en/newsletter.json b/ghost/i18n/locales/en/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/en/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/eo/newsletter.json b/ghost/i18n/locales/eo/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/eo/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/es/newsletter.json b/ghost/i18n/locales/es/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/es/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/et/newsletter.json b/ghost/i18n/locales/et/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/et/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/fa/newsletter.json b/ghost/i18n/locales/fa/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/fa/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/fi/newsletter.json b/ghost/i18n/locales/fi/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/fi/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/fr/newsletter.json b/ghost/i18n/locales/fr/newsletter.json
new file mode 100644
index 00000000000..352f80486de
--- /dev/null
+++ b/ghost/i18n/locales/fr/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "Par {authors}",
+ "Comment": "Commentaire",
+ "complimentary": "",
+ "Email": "E-mail",
+ "free": "gratuit",
+ "Keep reading": "Continuer la lecture",
+ "Less like this": "Moins de ce genre",
+ "Manage subscription": "Gérer l'abonnement",
+ "Member since": "Membre depuis",
+ "More like this": "Plus de ce genre",
+ "Name": "Nom",
+ "paid": "payé",
+ "Subscription details": "Détails de l'abonnement",
+ "trialing": "",
+ "Unsubscribe": "Se désabonner",
+ "View in browser": "Voir dans le navigateur",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "Vous recevez ceci parce que vous êtes un(e) abonné(e) %%{status}%% de {site}.",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "Votre essai gratuit se termine le {date}, après quoi le prix normal vous sera facturé. Vous pouvez toujours annuler avant cette date.",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "Votre abonnement a été annulé et expirera le {date}. Vous pouvez reprendre votre abonnement via les paramètres de votre compte.",
+ "Your subscription has expired.": "Votre abonnement a expiré.",
+ "Your subscription will expire on {date}.": "Votre abonnement expirera le {date}.",
+ "Your subscription will renew on {date}.": "Votre abonnement sera renouvelé le {date}."
+}
diff --git a/ghost/i18n/locales/gd/newsletter.json b/ghost/i18n/locales/gd/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/gd/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/hi/newsletter.json b/ghost/i18n/locales/hi/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/hi/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/hr/newsletter.json b/ghost/i18n/locales/hr/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/hr/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/hu/newsletter.json b/ghost/i18n/locales/hu/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/hu/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/id/newsletter.json b/ghost/i18n/locales/id/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/id/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/is/newsletter.json b/ghost/i18n/locales/is/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/is/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/it/newsletter.json b/ghost/i18n/locales/it/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/it/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ja/newsletter.json b/ghost/i18n/locales/ja/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ja/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ko/newsletter.json b/ghost/i18n/locales/ko/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ko/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/kz/newsletter.json b/ghost/i18n/locales/kz/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/kz/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/lt/newsletter.json b/ghost/i18n/locales/lt/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/lt/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/mk/newsletter.json b/ghost/i18n/locales/mk/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/mk/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/mn/newsletter.json b/ghost/i18n/locales/mn/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/mn/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ms/newsletter.json b/ghost/i18n/locales/ms/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ms/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/nl/newsletter.json b/ghost/i18n/locales/nl/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/nl/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/nn/newsletter.json b/ghost/i18n/locales/nn/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/nn/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/no/newsletter.json b/ghost/i18n/locales/no/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/no/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/pl/newsletter.json b/ghost/i18n/locales/pl/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/pl/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/pt-BR/newsletter.json b/ghost/i18n/locales/pt-BR/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/pt-BR/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/pt/newsletter.json b/ghost/i18n/locales/pt/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/pt/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ro/newsletter.json b/ghost/i18n/locales/ro/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ro/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ru/newsletter.json b/ghost/i18n/locales/ru/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ru/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/si/newsletter.json b/ghost/i18n/locales/si/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/si/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sk/newsletter.json b/ghost/i18n/locales/sk/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sk/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sl/newsletter.json b/ghost/i18n/locales/sl/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sl/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sq/newsletter.json b/ghost/i18n/locales/sq/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sq/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sr-Cyrl/newsletter.json b/ghost/i18n/locales/sr-Cyrl/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sr-Cyrl/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sr/newsletter.json b/ghost/i18n/locales/sr/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sr/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sv/newsletter.json b/ghost/i18n/locales/sv/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sv/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/sw/newsletter.json b/ghost/i18n/locales/sw/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/sw/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ta/newsletter.json b/ghost/i18n/locales/ta/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ta/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/th/newsletter.json b/ghost/i18n/locales/th/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/th/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/tr/newsletter.json b/ghost/i18n/locales/tr/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/tr/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/uk/newsletter.json b/ghost/i18n/locales/uk/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/uk/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/ur/newsletter.json b/ghost/i18n/locales/ur/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/ur/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/uz/newsletter.json b/ghost/i18n/locales/uz/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/uz/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/vi/newsletter.json b/ghost/i18n/locales/vi/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/vi/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/zh-Hant/newsletter.json b/ghost/i18n/locales/zh-Hant/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/zh-Hant/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/locales/zh/newsletter.json b/ghost/i18n/locales/zh/newsletter.json
new file mode 100644
index 00000000000..bd24d1dc525
--- /dev/null
+++ b/ghost/i18n/locales/zh/newsletter.json
@@ -0,0 +1,24 @@
+{
+ "By {authors}": "",
+ "Comment": "",
+ "complimentary": "",
+ "Email": "",
+ "free": "",
+ "Keep reading": "",
+ "Less like this": "",
+ "Manage subscription": "",
+ "Member since": "",
+ "More like this": "",
+ "Name": "",
+ "paid": "",
+ "Subscription details": "",
+ "trialing": "",
+ "Unsubscribe": "",
+ "View in browser": "",
+ "You are receiving this because you are a %%{status}%% subscriber to {site}.": "",
+ "Your free trial ends on {date}, at which time you will be charged the regular price. You can always cancel before then.": "",
+ "Your subscription has been canceled and will expire on {date}. You can resume your subscription via your account settings.": "",
+ "Your subscription has expired.": "",
+ "Your subscription will expire on {date}.": "",
+ "Your subscription will renew on {date}.": ""
+}
diff --git a/ghost/i18n/package.json b/ghost/i18n/package.json
index 3a0da95e025..aa88d726f2f 100644
--- a/ghost/i18n/package.json
+++ b/ghost/i18n/package.json
@@ -18,7 +18,8 @@
"translate:portal": "NAMESPACE=portal i18next '../../apps/portal/src/**/*.{js,jsx}'",
"translate:signup-form": "NAMESPACE=signup-form i18next '../../apps/signup-form/src/**/*.{ts,tsx}'",
"translate:comments": "NAMESPACE=comments i18next '../../apps/comments-ui/src/**/*.{ts,tsx}'",
- "translate:search": "NAMESPACE=search i18next '../../apps/sodo-search/src/**/*.{js,jsx,ts,tsx}'"
+ "translate:search": "NAMESPACE=search i18next '../../apps/sodo-search/src/**/*.{js,jsx,ts,tsx}'",
+ "translate:newsletter": "NAMESPACE=newsletter i18next '../email-service/{lib/email-templates/*.hbs,lib/email-templates/partials/*.hbs,lib/*.js}'"
},
"files": [
"index.js",