diff --git a/src/translation/en.json b/src/translation/en.json
index d2d82154d..a885ee42b 100644
--- a/src/translation/en.json
+++ b/src/translation/en.json
@@ -237,7 +237,78 @@
}
},
"emails": {
- "title": "Email"
+ "title": "Email",
+ "domains": {
+ "title": "Domains",
+ "domain": "Domain",
+ "config": "Config",
+ "outbound": "Outbound only",
+ "disabled": "Disabled",
+ "stats": "{{ mailboxCount }} Mailbox(es) / Usage: {{ usage | prettyByteSize }}",
+ "testEmailTooltip": "Send Test Email"
+ },
+ "settings": {
+ "title": "Settings",
+ "info": "These settings are global and apply to all domains.",
+ "location": "Mail server location",
+ "maxMailSize": "Maximum email size",
+ "spamFilter": "Spam filtering",
+ "spamFilterOverview": "{{ acl.blacklist.length }} address(es) blacklisted {{ customConfig ? '. Custom rules set.' : '.' }}",
+ "changeDomainProgress": "Changing Email domain:"
+ },
+ "eventlog": {
+ "title": "Event Log",
+ "time": "Time",
+ "details": "Details",
+ "empty": "Event Log is empty.",
+ "type": {
+ "outgoing": "Outgoing",
+ "deferred": "Deferred",
+ "incoming": "Incoming",
+ "queued": "Queued",
+ "denied": "Denied",
+ "bounce": "Bounce",
+ "spamFilterTrained": "Spam filter trained",
+ "bounceInfo": "Sent bounce to {{ mailFrom | prettyEmailAddresses }} for mail sent to {{ rcptTo | prettyEmailAddresses }}. {{ details.message || details.reason }}",
+ "deferredInfo": "Failed to deliver mail to {{ rcptTo | prettyEmailAddresses }}. {{ details.message || details.reason }}. Will retry in {{ details.delay }}s.",
+ "inboundInfo": "Incoming mail from {{ mailFrom | prettyEmailAddresses }} to {{ rcptTo | prettyEmailAddresses }}. Spam: {{ details.spamStatus.indexOf('Yes,') === 0 ? 'Yes' : 'No' }}",
+ "outboundInfo": "Queued mail for delivery to {{ rcptTo | prettyEmailAddresses }} from {{ mailFrom | prettyEmailAddresses }}",
+ "receivedInfo": "Saved mail from {{ mailFrom | prettyEmailAddresses }} in mailbox {{ rcptTo | prettyEmailAddresses }}",
+ "deliveredInfo": "Delivered mail to {{ rcptTo | prettyEmailAddresses }} from {{ mailFrom | prettyEmailAddresses }}",
+ "deniedInfo": "Connection from {{ remote.ip }} denied. {{ details.message || details.reason }}",
+ "spamFilterTrainedInfo": "Spam filter trained using mailbox content"
+ },
+ "showRawLogsAction": "Show Raw Logs",
+ "searchPlaceholder": "Search"
+ },
+ "changeDomainDialog": {
+ "title": "Change Email Server Location",
+ "description": "Cloudron will make the necessary DNS changes across all the domains and restart the mail server. Desktop & Mobile email clients have to be re-configured to use this new location as the IMAP and SMTP server.",
+ "location": "Location",
+ "locationPlaceholder": "Leave empty to use bare domain",
+ "linodeInfo": "Linode DNS average propagation time is 30 minutes. Changing the location will take a while.",
+ "manualInfo": "Add an A record manually for {{ (!subdomain ? '' : '.') + domain.domain }} to this Cloudron's public IP"
+ },
+ "changeMailSizeDialog": {
+ "title": "Change Maximum Email Size",
+ "description": "Changing the maximum email message size requires a restart of the mail server.",
+ "size": "Maximum size in megabytes:"
+ },
+ "spamFilterDialog": {
+ "title": "Spam Filtering",
+ "blacklisteAddresses": "Blacklisted addresses",
+ "blacklisteAddressesInfo": "Matched addresses will end up in the user's Spam folder. '*' and '?' glob patterns are supported.",
+ "customRules": "Custom Spamassassin Rules",
+ "blacklisteAddressesPlaceholder": "Line separated email address patterns",
+ "customRulesPlaceholder": "Custom Spamassassin Rules"
+ },
+ "testMailDialog": {
+ "title": "Send test email for {{ domain }}",
+ "description": "This will send a test email from no-reply@{{domain}} to the address below.",
+ "mailTo": "Email to",
+ "mailToPlaceholder": "Email address",
+ "sendAction": "Send"
+ }
},
"network": {
"title": "Network",
diff --git a/src/views/email.html b/src/views/email.html
index 5d4b1908c..caae6eb80 100644
--- a/src/views/email.html
+++ b/src/views/email.html
@@ -351,8 +351,8 @@
Add
- prev
- next
+ {{ 'main.pagination.prev' | tr }}
+ {{ 'main.pagination.next' | tr }}
@@ -404,8 +404,8 @@
Mailing Lists
Add
- prev
- next
+ {{ 'main.pagination.prev' | tr }}
+ {{ 'main.pagination.next' | tr }}
diff --git a/src/views/emails.html b/src/views/emails.html
index 1e6f968b6..2a3c6def9 100644
--- a/src/views/emails.html
+++ b/src/views/emails.html
@@ -3,22 +3,20 @@
-
Cloudron will make the necessary DNS changes across all the domains and restart the mail server.
- Desktop & Mobile email clients have to be re-configured to use this new location as the IMAP and SMTP server.
-
+
@@ -61,22 +51,22 @@
-
Changing the maximum email message size requires a restart of the mail server.
+
@@ -87,27 +77,27 @@
@@ -118,18 +108,17 @@
@@ -148,13 +135,11 @@
-
- Mail Server
-
+ {{ 'emails.title' | tr }}
-
Domains
+ {{ 'emails.domains.title' | tr }}
@@ -169,8 +154,8 @@
- Domain
- Config
+ {{ 'emails.domains.domain' | tr }}
+ {{ 'emails.domains.config' | tr }}
{{ 'main.actions' | tr }}
@@ -185,15 +170,13 @@
-
- {{ domain.mailboxCount }} Mailbox(es) / Usage: {{ domain.usage | prettyByteSize }}
-
- Outbound only
- Disabled
+ {{ 'emails.domains.stats' | tr:domain }}
+ {{ 'emails.domains.outbound' | tr }}
+ {{ 'emails.domains.disabled' | tr }}
-
+
@@ -206,15 +189,15 @@
-
Settings
+ {{ 'emails.settings.title' | tr }}
-
These settings are global and apply to all domains.
+
- Mail server location
+ {{ 'emails.settings.location' | tr }}
{{ mailLocation.currentLocation.subdomain + (!mailLocation.currentLocation.subdomain ? '' : '.') + mailLocation.currentLocation.domain.domain }}
@@ -222,22 +205,22 @@
- Maximum email size
+ {{ 'emails.settings.maxMailSize' | tr }}
{{ maxEmailSize.currentSize | prettyDiskSize }}
- Spam filtering
+ {{ 'emails.settings.spamFilter' | tr }}
-
{{ spamConfig.acl.blacklist.length }} address(es) blacklisted {{ spamConfig.customConfig ? '. Custom rules set.' : '.' }}
+
{{ 'emails.settings.spamFilterOverview' | tr:spamConfig }}
- Changing Email domain:
+ {{ 'emails.settings.changeDomainProgress' | tr }}
@@ -249,19 +232,19 @@
-
Event Log
+ {{ 'emails.eventlog.title' | tr }}
@@ -278,8 +261,8 @@
- Time
- Details
+ {{ 'emails.eventlog.time' | tr }}
+ {{ 'emails.eventlog.details' | tr }}
@@ -294,7 +277,7 @@
- Event Log is empty.
+ {{ 'emails.eventlog.empty' | tr }}
@@ -303,30 +286,26 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
{{ eventlog.ts | prettyDate }}
- Sent bounce to {{ eventlog.mailFrom | prettyEmailAddresses }} for mail sent to {{ eventlog.rcptTo | prettyEmailAddresses }}. {{ eventlog.details.message || eventlog.details.reason }}
- Failed to deliver mail to {{ eventlog.rcptTo | prettyEmailAddresses }}. {{ eventlog.details.message || eventlog.details.reason }}. Will retry in {{ eventlog.details.delay }}s.
+ {{ 'emails.eventlog.type.bounceInfo' | tr:eventlog }}
+ {{ 'emails.eventlog.type.deferredInfo' | tr:eventlog }}
-
- Incoming mail from {{ eventlog.mailFrom | prettyEmailAddresses }} to {{ eventlog.rcptTo | prettyEmailAddresses }}. Spam: {{ eventlog.details.spamStatus.indexOf('Yes,') === 0 ? 'Yes' : 'No' }}
-
-
- Queued mail for delivery to {{ eventlog.rcptTo | prettyEmailAddresses }} from {{ eventlog.mailFrom | prettyEmailAddresses }}
-
+ {{ 'emails.eventlog.type.inboundInfo' | tr:eventlog }}
+ {{ 'emails.eventlog.type.outboundInfo' | tr:eventlog }}
- Saved mail from {{ eventlog.mailFrom | prettyEmailAddresses }} in mailbox {{ eventlog.rcptTo | prettyEmailAddresses }}
- Delivered mail to {{ eventlog.rcptTo | prettyEmailAddresses }} from {{ eventlog.mailFrom | prettyEmailAddresses }}
-
- Connection from {{ eventlog.remote.ip }} denied. {{ eventlog.details.message || eventlog.details.reason }}
- Spam filter trained using mailbox content
+ {{ 'emails.eventlog.type.receivedInfo' | tr:eventlog }}
+ {{ 'emails.eventlog.type.deliveredInfo' | tr:eventlog }}
+ {{ 'emails.eventlog.type.deniedInfo' | tr:eventlog }}
+ {{ 'emails.eventlog.type.spamFilterTrainedInfo' | tr:eventlog }}
@@ -339,7 +318,7 @@
- Show Raw Logs
+ {{ 'emails.eventlog.showRawLogsAction' | tr }}
diff --git a/src/views/emails.js b/src/views/emails.js
index a5f42cfaf..6138af2ec 100644
--- a/src/views/emails.js
+++ b/src/views/emails.js
@@ -10,6 +10,10 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati
$scope.user = Client.getUserInfo();
$scope.domains = [];
+ $scope.translationLinks = {
+ linodeDocsLink: 'https://docs.cloudron.io/domains/#linode-dns'
+ };
+
$scope.pageItemCount = [
{ name: 'Show 20 per page', value: 20 },
{ name: 'Show 50 per page', value: 50 },
diff --git a/src/views/users.html b/src/views/users.html
index c6d92d515..e8e3e0a31 100644
--- a/src/views/users.html
+++ b/src/views/users.html
@@ -415,8 +415,8 @@