diff --git a/application/Espo/Core/Templates/i18n/en_GB/Base.json b/application/Espo/Core/Templates/i18n/en_GB/Base.json
new file mode 100644
index 0000000000..06f5048a22
--- /dev/null
+++ b/application/Espo/Core/Templates/i18n/en_GB/Base.json
@@ -0,0 +1,5 @@
+{
+ "labels": {
+ "Create {entityType}": "Create {entityTypeTranslated}"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Core/Templates/i18n/en_GB/BasePlus.json b/application/Espo/Core/Templates/i18n/en_GB/BasePlus.json
new file mode 100644
index 0000000000..f04d982d34
--- /dev/null
+++ b/application/Espo/Core/Templates/i18n/en_GB/BasePlus.json
@@ -0,0 +1,10 @@
+{
+ "links": {
+ "meetings": "Meetings",
+ "calls": "Calls",
+ "tasks": "Tasks"
+ },
+ "labels": {
+ "Create {entityType}": "Create {entityTypeTranslated}"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Core/Templates/i18n/en_GB/Company.json b/application/Espo/Core/Templates/i18n/en_GB/Company.json
new file mode 100644
index 0000000000..7823cf2359
--- /dev/null
+++ b/application/Espo/Core/Templates/i18n/en_GB/Company.json
@@ -0,0 +1,15 @@
+{
+ "fields": {
+ "billingAddress": "Billing Address",
+ "shippingAddress": "Shipping Address",
+ "website": "Website"
+ },
+ "links": {
+ "meetings": "Meetings",
+ "calls": "Calls",
+ "tasks": "Tasks"
+ },
+ "labels": {
+ "Create {entityType}": "Create {entityTypeTranslated}"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Core/Templates/i18n/en_GB/Event.json b/application/Espo/Core/Templates/i18n/en_GB/Event.json
new file mode 100644
index 0000000000..7e8d400cb5
--- /dev/null
+++ b/application/Espo/Core/Templates/i18n/en_GB/Event.json
@@ -0,0 +1,36 @@
+{
+ "fields": {
+ "parent": "Parent",
+ "dateStart": "Date Start",
+ "dateEnd": "Date End",
+ "duration": "Duration",
+ "status": "Status",
+ "reminders": "Reminders"
+ },
+ "links": {
+ "parent": "Parent"
+ },
+ "options": {
+ "status": {
+ "Planned": "Planned",
+ "Held": "Held",
+ "Not Held": "Not Held"
+ }
+ },
+ "labels": {
+ "Create {entityType}": "Create {entityTypeTranslated}",
+ "Schedule {entityType}": "Schedule {entityTypeTranslated}",
+ "Log {entityType}": "Log {entityTypeTranslated}",
+ "Set Held": "Set Held",
+ "Set Not Held": "Set Not Held"
+ },
+ "massActions": {
+ "setHeld": "Set Held",
+ "setNotHeld": "Set Not Held"
+ },
+ "presetFilters": {
+ "planned": "Planned",
+ "held": "Held",
+ "todays": "Today's"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Core/Templates/i18n/en_GB/Person.json b/application/Espo/Core/Templates/i18n/en_GB/Person.json
new file mode 100644
index 0000000000..56fc9f19e8
--- /dev/null
+++ b/application/Espo/Core/Templates/i18n/en_GB/Person.json
@@ -0,0 +1,13 @@
+{
+ "fields": {
+ "address": "Address"
+ },
+ "links": {
+ "meetings": "Meetings",
+ "calls": "Calls",
+ "tasks": "Tasks"
+ },
+ "labels": {
+ "Create {entityType}": "Create {entityTypeTranslated}"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Core/defaults/config.php b/application/Espo/Core/defaults/config.php
index 1d03e74a3c..9f1bb8b93b 100644
--- a/application/Espo/Core/defaults/config.php
+++ b/application/Espo/Core/defaults/config.php
@@ -63,6 +63,7 @@ return array (
'smtpUsername' => '',
'smtpPassword' => '',
'languageList' => [
+ 'en_GB',
'en_US',
'cs_CZ',
'da_DK',
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Account.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Account.json
new file mode 100644
index 0000000000..bf0cdc435c
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Account.json
@@ -0,0 +1,103 @@
+{
+ "fields": {
+ "name": "Name",
+ "emailAddress": "Email",
+ "website": "Website",
+ "phoneNumber": "Phone",
+ "billingAddress": "Billing Address",
+ "shippingAddress": "Shipping Address",
+ "description": "Description",
+ "sicCode": "Sic Code",
+ "industry": "Industry",
+ "type": "Type",
+ "contactRole": "Title",
+ "campaign": "Campaign",
+ "targetLists": "Target Lists",
+ "targetList": "Target List",
+ "originalLead": "Original Lead"
+ },
+ "links": {
+ "contacts": "Contacts",
+ "opportunities": "Opportunities",
+ "cases": "Cases",
+ "documents": "Documents",
+ "meetingsPrimary": "Meetings (expanded)",
+ "callsPrimary": "Calls (expanded)",
+ "tasksPrimary": "Tasks (expanded)",
+ "emailsPrimary": "Emails (expanded)",
+ "targetLists": "Target Lists",
+ "campaignLogRecords": "Campaign Log",
+ "campaign": "Campaign",
+ "portalUsers": "Portal Users",
+ "originalLead": "Original Lead"
+ },
+ "options": {
+ "type": {
+ "Customer": "Customer",
+ "Investor": "Investor",
+ "Partner": "Partner",
+ "Reseller": "Reseller"
+ },
+ "industry": {
+ "Agriculture": "Agriculture",
+ "Advertising": "Advertising",
+ "Apparel & Accessories": "Apparel & Accessories",
+ "Automotive": "Automotive",
+ "Banking": "Banking",
+ "Biotechnology": "Biotechnology",
+ "Building Materials & Equipment": "Building Materials & Equipment",
+ "Chemical": "Chemical",
+ "Computer": "Computer",
+ "Education": "Education",
+ "Electronics": "Electronics",
+ "Energy": "Energy",
+ "Entertainment & Leisure": "Entertainment & Leisure",
+ "Finance": "Finance",
+ "Food & Beverage": "Food & Beverage",
+ "Grocery": "Grocery",
+ "Healthcare": "Healthcare",
+ "Insurance": "Insurance",
+ "Legal": "Legal",
+ "Manufacturing": "Manufacturing",
+ "Publishing": "Publishing",
+ "Real Estate": "Real Estate",
+ "Service": "Service",
+ "Sports": "Sports",
+ "Software": "Software",
+ "Technology": "Technology",
+ "Telecommunications": "Telecommunications",
+ "Television": "Television",
+ "Transportation": "Transportation",
+ "Venture Capital": "Venture Capital",
+ "Aerospace": "Aerospace",
+ "Architecture": "Architecture",
+ "Construction": "Construction",
+ "Defense": "Defense",
+ "Creative": "Creative",
+ "Culture": "Culture",
+ "Consulting": "Consulting",
+ "Electric Power": "Electric Power",
+ "Hospitality": "Hospitality",
+ "Mass Media": "Mass Media",
+ "Mining": "Mining",
+ "Music": "Music",
+ "Marketing": "Marketing",
+ "Petroleum": "Petroleum",
+ "Retail": "Retail",
+ "Shipping": "Shipping",
+ "Support": "Support",
+ "Testing, Inspection & Certification": "Testing, Inspection & Certification",
+ "Wholesale": "Wholesale",
+ "Water": "Water"
+ }
+ },
+ "labels": {
+ "Create Account": "Create Account",
+ "Copy Billing": "Copy Billing"
+ },
+ "presetFilters": {
+ "customers": "Customers",
+ "partners": "Partners",
+ "recentlyCreated": "Recently Created"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Admin.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Admin.json
new file mode 100644
index 0000000000..ce6d2c8afd
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Admin.json
@@ -0,0 +1,6 @@
+{
+ "layouts": {
+ "detailConvert": "Convert Lead",
+ "listForAccount": "List (for Account)"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Calendar.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Calendar.json
new file mode 100644
index 0000000000..092581e4f9
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Calendar.json
@@ -0,0 +1,20 @@
+{
+ "modes": {
+ "month": "Month",
+ "week": "Week",
+ "agendaWeek": "Week",
+ "day": "Day",
+ "agendaDay": "Day",
+ "timeline": "Timeline"
+ },
+ "labels": {
+ "Today": "Today",
+ "Create": "Create",
+ "Shared": "Shared",
+ "Add User": "Add User",
+ "current": "current",
+ "time": "time",
+ "User List": "User List",
+ "Manage Users": "Manage Users"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Call.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Call.json
new file mode 100644
index 0000000000..4af17983c9
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Call.json
@@ -0,0 +1,50 @@
+{
+ "fields": {
+ "name": "Name",
+ "parent": "Parent",
+ "status": "Status",
+ "dateStart": "Date Start",
+ "dateEnd": "Date End",
+ "direction": "Direction",
+ "duration": "Duration",
+ "description": "Description",
+ "users": "Users",
+ "contacts": "Contacts",
+ "leads": "Leads",
+ "reminders": "Reminders",
+ "account": "Account",
+ "acceptanceStatus": "Acceptance Status"
+ },
+ "options": {
+ "status": {
+ "Planned": "Planned",
+ "Held": "Held",
+ "Not Held": "Not Held"
+ },
+ "direction": {
+ "Outbound": "Outbound",
+ "Inbound": "Inbound"
+ },
+ "acceptanceStatus": {
+ "None": "None",
+ "Accepted": "Accepted",
+ "Declined": "Declined",
+ "Tentative": "Tentative"
+ }
+ },
+ "massActions": {
+ "setHeld": "Set Held",
+ "setNotHeld": "Set Not Held"
+ },
+ "labels": {
+ "Create Call": "Create Call",
+ "Set Held": "Set Held",
+ "Set Not Held": "Set Not Held",
+ "Send Invitations": "Send Invitations"
+ },
+ "presetFilters": {
+ "planned": "Planned",
+ "held": "Held",
+ "todays": "Today's"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Campaign.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Campaign.json
new file mode 100644
index 0000000000..e862e2e00a
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Campaign.json
@@ -0,0 +1,75 @@
+{
+ "fields": {
+ "name": "Name",
+ "description": "Description",
+ "status": "Status",
+ "type": "Type",
+ "startDate": "Start Date",
+ "endDate": "End Date",
+ "targetLists": "Target Lists",
+ "excludingTargetLists": "Excluding Target Lists",
+ "sentCount": "Sent",
+ "openedCount": "Opened",
+ "clickedCount": "Clicked",
+ "optedOutCount": "Opted Out",
+ "bouncedCount": "Bounced",
+ "hardBouncedCount": "Hard Bounced",
+ "softBouncedCount": "Soft Bounced",
+ "leadCreatedCount": "Leads Created",
+ "revenue": "Revenue",
+ "revenueConverted": "Revenue (converted)",
+ "budget": "Budget",
+ "budgetConverted": "Budget (converted)"
+ },
+ "links": {
+ "targetLists": "Target Lists",
+ "excludingTargetLists": "Excluding Target Lists",
+ "accounts": "Accounts",
+ "contacts": "Contacts",
+ "leads": "Leads",
+ "opportunities": "Opportunities",
+ "campaignLogRecords": "Log",
+ "massEmails": "Mass Emails",
+ "trackingUrls": "Tracking URLs"
+ },
+ "options": {
+ "type": {
+ "Email": "Email",
+ "Web": "Web",
+ "Television": "Television",
+ "Radio": "Radio",
+ "Newsletter": "Newsletter",
+ "Mail": "Mail"
+ },
+ "status": {
+ "Planning": "Planning",
+ "Active": "Active",
+ "Inactive": "Inactive",
+ "Complete": "Complete"
+ }
+ },
+ "labels": {
+ "Create Campaign": "Create Campaign",
+ "Target Lists": "Target Lists",
+ "Statistics": "Statistics",
+ "hard": "hard",
+ "soft": "soft",
+ "Unsubscribe": "Unsubscribe",
+ "Mass Emails": "Mass Emails",
+ "Email Templates": "Email Templates",
+ "Unsubscribe again": "Unsubscribe again",
+ "Subscribe again": "Subscribe again",
+ "Create Target List": "Create Target List"
+ },
+ "presetFilters": {
+ "active": "Active"
+ },
+ "messages": {
+ "unsubscribed": "You have been unsubscribed from our mailing list.",
+ "subscribedAgain": "You are subscribed again."
+ },
+ "tooltips": {
+ "targetLists": "Targets that should receive messages.",
+ "excludingTargetLists": "Targets that should not receive messages."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/CampaignLogRecord.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/CampaignLogRecord.json
new file mode 100644
index 0000000000..b0a1903119
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/CampaignLogRecord.json
@@ -0,0 +1,40 @@
+{
+ "fields": {
+ "action": "Action",
+ "actionDate": "Date",
+ "data": "Data",
+ "campaign": "Campaign",
+ "parent": "Target",
+ "object": "Object",
+ "application": "Application",
+ "queueItem": "Queue Item",
+ "stringData": "String Data",
+ "stringAdditionalData": "String Additional Data"
+ },
+ "links": {
+ "queueItem": "Queue Item",
+ "parent": "Parent",
+ "object": "Object"
+ },
+ "options": {
+ "action": {
+ "Sent": "Sent",
+ "Opened": "Opened",
+ "Opted Out": "Opted Out",
+ "Bounced": "Bounced",
+ "Clicked": "Clicked",
+ "Lead Created": "Lead Created"
+ }
+ },
+ "labels": {
+ "All": "All"
+ },
+ "presetFilters": {
+ "sent": "Sent",
+ "opened": "Opened",
+ "optedOut": "Opted Out",
+ "bounced": "Bounced",
+ "clicked": "Clicked",
+ "leadCreated": "Lead Created"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/CampaignTrackingUrl.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/CampaignTrackingUrl.json
new file mode 100644
index 0000000000..ee26e8ba7d
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/CampaignTrackingUrl.json
@@ -0,0 +1,13 @@
+{
+ "fields": {
+ "url": "URL",
+ "urlToUse": "Code to insert instead of URL",
+ "campaign": "Campaign"
+ },
+ "links": {
+ "campaign": "Campaign"
+ },
+ "labels": {
+ "Create CampaignTrackingUrl": "Create Tracking URL"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Case.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Case.json
new file mode 100644
index 0000000000..07d0891cc9
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Case.json
@@ -0,0 +1,59 @@
+{
+ "fields": {
+ "name": "Name",
+ "number": "Number",
+ "status": "Status",
+ "account": "Account",
+ "contact": "Contact",
+ "contacts": "Contacts",
+ "priority": "Priority",
+ "type": "Type",
+ "description": "Description",
+ "inboundEmail": "Inbound Email",
+ "lead": "Lead"
+ },
+ "links": {
+ "inboundEmail": "Inbound Email",
+ "account": "Account",
+ "contact": "Contact (Primary)",
+ "Contacts": "Contacts",
+ "meetings": "Meetings",
+ "calls": "Calls",
+ "tasks": "Tasks",
+ "emails": "Emails",
+ "articles": "Knowledge Base Articles",
+ "lead": "Lead"
+ },
+ "options": {
+ "status": {
+ "New": "New",
+ "Assigned": "Assigned",
+ "Pending": "Pending",
+ "Closed": "Closed",
+ "Rejected": "Rejected",
+ "Duplicate": "Duplicate"
+ },
+ "priority": {
+ "Low": "Low",
+ "Normal": "Normal",
+ "High": "High",
+ "Urgent": "Urgent"
+ },
+ "type": {
+ "Question": "Question",
+ "Incident": "Incident",
+ "Problem": "Problem"
+ }
+ },
+ "labels": {
+ "Create Case": "Create Case",
+ "Close": "Close",
+ "Reject": "Reject",
+ "Closed": "Closed",
+ "Rejected": "Rejected"
+ },
+ "presetFilters": {
+ "open": "Open",
+ "closed": "Closed"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Contact.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Contact.json
new file mode 100644
index 0000000000..e0d2fbfafd
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Contact.json
@@ -0,0 +1,50 @@
+{
+ "fields": {
+ "name": "Name",
+ "emailAddress": "Email",
+ "title": "Title",
+ "accountRole": "Title",
+ "account": "Account",
+ "accounts": "Accounts",
+ "phoneNumber": "Phone",
+ "accountType": "Account Type",
+ "doNotCall": "Do Not Call",
+ "address": "Address",
+ "opportunityRole": "Opportunity Role",
+ "description": "Description",
+ "campaign": "Campaign",
+ "targetLists": "Target Lists",
+ "targetList": "Target List",
+ "portalUser": "Portal User",
+ "originalLead": "Original Lead",
+ "acceptanceStatus": "Acceptance Status"
+ },
+ "links": {
+ "opportunities": "Opportunities",
+ "cases": "Cases",
+ "targetLists": "Target Lists",
+ "campaignLogRecords": "Campaign Log",
+ "campaign": "Campaign",
+ "account": "Account (Primary)",
+ "accounts": "Accounts",
+ "casesPrimary": "Cases (Primary)",
+ "portalUser": "Portal User",
+ "originalLead": "Original Lead",
+ "documents": "Documents"
+ },
+ "labels": {
+ "Create Contact": "Create Contact"
+ },
+ "options": {
+ "opportunityRole": {
+ "": "--None--",
+ "Decision Maker": "Decision Maker",
+ "Evaluator": "Evaluator",
+ "Influencer": "Influencer"
+ }
+ },
+ "presetFilters": {
+ "portalUsers": "Portal Users",
+ "notPortalUsers": "Not Portal Users"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Document.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Document.json
new file mode 100644
index 0000000000..45ecf0ab38
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Document.json
@@ -0,0 +1,43 @@
+{
+ "labels": {
+ "Create Document": "Create Document",
+ "Details": "Details"
+ },
+ "fields": {
+ "name": "Name",
+ "status": "Status",
+ "file": "File",
+ "type": "Type",
+ "publishDate": "Publish Date",
+ "expirationDate": "Expiration Date",
+ "description": "Description",
+ "accounts": "Accounts",
+ "folder": "Folder"
+ },
+ "links": {
+ "accounts": "Accounts",
+ "opportunities": "Opportunities",
+ "folder": "Folder",
+ "leads": "Leads",
+ "contacts": "Contacts"
+ },
+ "options": {
+ "status": {
+ "Active": "Active",
+ "Draft": "Draft",
+ "Expired": "Expired",
+ "Canceled": "Cancelled"
+ },
+ "type": {
+ "": "None",
+ "Contract": "Contract",
+ "NDA": "NDA",
+ "EULA": "EULA",
+ "License Agreement": "License Agreement"
+ }
+ },
+ "presetFilters": {
+ "active": "Active",
+ "draft": "Draft"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/DocumentFolder.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/DocumentFolder.json
new file mode 100644
index 0000000000..e5bcd0652c
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/DocumentFolder.json
@@ -0,0 +1,10 @@
+{
+ "labels": {
+ "Create DocumentFolder": "Create Document Folder",
+ "Manage Categories": "Manage Folders",
+ "Documents": "Documents"
+ },
+ "links": {
+ "documents": "Documents"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Email.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Email.json
new file mode 100644
index 0000000000..0aa3da1a9e
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Email.json
@@ -0,0 +1,10 @@
+{
+ "labels": {
+ "Create Lead": "Create Lead",
+ "Create Contact": "Create Contact",
+ "Create Task": "Create Task",
+ "Create Case": "Create Case",
+ "Add to Contact": "Add to Contact",
+ "Add to Lead": "Add to Lead"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/EmailQueueItem.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/EmailQueueItem.json
new file mode 100644
index 0000000000..4afa3476ae
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/EmailQueueItem.json
@@ -0,0 +1,29 @@
+{
+ "fields": {
+ "name": "Name",
+ "status": "Status",
+ "target": "Target",
+ "sentAt": "Date Sent",
+ "attemptCount": "Attempts",
+ "emailAddress": "Email Address",
+ "massEmail": "Mass Email",
+ "isTest": "Is Test"
+ },
+ "links": {
+ "target": "Target",
+ "massEmail": "Mass Email"
+ },
+ "options": {
+ "status": {
+ "Pending": "Pending",
+ "Sent": "Sent",
+ "Failed": "Failed",
+ "Sending": "Sending"
+ }
+ },
+ "presetFilters": {
+ "pending": "Pending",
+ "sent": "Sent",
+ "failed": "Failed"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Global.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Global.json
new file mode 100644
index 0000000000..b07d4b8391
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Global.json
@@ -0,0 +1,118 @@
+{
+ "links": {
+ "parent": "Parent",
+ "contacts": "Contacts",
+ "opportunities": "Opportunities",
+ "leads": "Leads",
+ "meetings": "Meetings",
+ "calls": "Calls",
+ "tasks": "Tasks",
+ "emails": "Emails",
+ "accounts": "Accounts",
+ "cases": "Cases",
+ "documents": "Documents",
+ "account": "Account",
+ "opportunity": "Opportunity",
+ "contact": "Contact"
+ },
+ "scopeNames": {
+ "Account": "Account",
+ "Contact": "Contact",
+ "Lead": "Lead",
+ "Target": "Target",
+ "Opportunity": "Opportunity",
+ "Meeting": "Meeting",
+ "Calendar": "Calendar",
+ "Call": "Call",
+ "Task": "Task",
+ "Case": "Case",
+ "Document": "Document",
+ "DocumentFolder": "Document Folder",
+ "Campaign": "Campaign",
+ "TargetList": "Target List",
+ "MassEmail": "Mass Email",
+ "EmailQueueItem": "Email Queue Item",
+ "CampaignTrackingUrl": "Tracking URL",
+ "Activities": "Activities",
+ "KnowledgeBaseArticle": "Knowledge Base Article",
+ "KnowledgeBaseCategory": "Knowledge Base Category",
+ "CampaignLogRecord": "Campaign Log Record"
+ },
+ "scopeNamesPlural": {
+ "Account": "Accounts",
+ "Contact": "Contacts",
+ "Lead": "Leads",
+ "Target": "Targets",
+ "Opportunity": "Opportunities",
+ "Meeting": "Meetings",
+ "Calendar": "Calendar",
+ "Call": "Calls",
+ "Task": "Tasks",
+ "Case": "Cases",
+ "Document": "Documents",
+ "DocumentFolder": "Document Folders",
+ "Campaign": "Campaigns",
+ "TargetList": "Target Lists",
+ "MassEmail": "Mass Emails",
+ "EmailQueueItem": "Email Queue Items",
+ "CampaignTrackingUrl": "Tracking URLs",
+ "Activities": "Activities",
+ "KnowledgeBaseArticle": "Knowledge Base",
+ "KnowledgeBaseCategory": "Knowledge Base Categories",
+ "CampaignLogRecord": "Campaign Log Records"
+ },
+ "dashlets": {
+ "Leads": "My Leads",
+ "Opportunities": "My Opportunities",
+ "Tasks": "My Tasks",
+ "Cases": "My Cases",
+ "Calendar": "Calendar",
+ "Calls": "My Calls",
+ "Meetings": "My Meetings",
+ "OpportunitiesByStage": "Opportunities by Stage",
+ "OpportunitiesByLeadSource": "Opportunities by Lead Source",
+ "SalesByMonth": "Sales by Month",
+ "SalesPipeline": "Sales Pipeline",
+ "Activities": "My Activities"
+ },
+ "labels": {
+ "Create InboundEmail": "Create Inbound Email",
+ "Activities": "Activities",
+ "History": "History",
+ "Attendees": "Attendees",
+ "Schedule Meeting": "Schedule Meeting",
+ "Schedule Call": "Schedule Call",
+ "Compose Email": "Compose Email",
+ "Log Meeting": "Log Meeting",
+ "Log Call": "Log Call",
+ "Archive Email": "Archive Email",
+ "Create Task": "Create Task",
+ "Tasks": "Tasks"
+ },
+ "fields": {
+ "billingAddressCity": "City",
+ "addressCity": "City",
+ "billingAddressCountry": "Country",
+ "addressCountry": "Country",
+ "billingAddressPostalCode": "Postal Code",
+ "addressPostalCode": "Postal Code",
+ "billingAddressState": "County",
+ "addressState": "County",
+ "billingAddressStreet": "Street",
+ "addressStreet": "Street",
+ "billingAddressMap": "Map",
+ "addressMap": "Map",
+ "shippingAddressCity": "City (Shipping)",
+ "shippingAddressStreet": "Street (Shipping)",
+ "shippingAddressCountry": "Country (Shipping)",
+ "shippingAddressState": "County (Shipping)",
+ "shippingAddressPostalCode": "Postal Code (Shipping)",
+ "shippingAddressMap": "Map (Shipping)"
+ },
+ "options": {
+ "reminderTypes": {
+ "Popup": "Popup",
+ "Email": "Email"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/KnowledgeBaseArticle.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/KnowledgeBaseArticle.json
new file mode 100644
index 0000000000..72275627ba
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/KnowledgeBaseArticle.json
@@ -0,0 +1,47 @@
+{
+ "labels": {
+ "Create KnowledgeBaseArticle": "Create Article",
+ "Any": "Any",
+ "Send in Email": "Send in Email",
+ "Move Up": "Move Up",
+ "Move Down": "Move Down",
+ "Move to Top": "Move to Top",
+ "Move to Bottom": "Move to Bottom"
+ },
+ "fields": {
+ "name": "Name",
+ "status": "Status",
+ "type": "Type",
+ "attachments": "Attachments",
+ "publishDate": "Publish Date",
+ "expirationDate": "Expiration Date",
+ "description": "Description",
+ "body": "Body",
+ "categories": "Categories",
+ "language": "Language",
+ "portals": "Portals"
+ },
+ "links": {
+ "cases": "Cases",
+ "opportunities": "Opportunities",
+ "categories": "Categories",
+ "portals": "Portals"
+ },
+ "options": {
+ "status": {
+ "In Review": "In Review",
+ "Draft": "Draft",
+ "Archived": "Archived",
+ "Published": "Published"
+ },
+ "type": {
+ "Article": "Article"
+ }
+ },
+ "presetFilters": {
+ "published": "Published"
+ },
+ "tooltips": {
+ "portals": "Article will be available only in specified portals."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/KnowledgeBaseCategory.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/KnowledgeBaseCategory.json
new file mode 100644
index 0000000000..5aa6d84c7c
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/KnowledgeBaseCategory.json
@@ -0,0 +1,10 @@
+{
+ "labels": {
+ "Create KnowledgeBaseCategory": "Create Category",
+ "Manage Categories": "Manage Categories",
+ "Articles": "Articles"
+ },
+ "links": {
+ "articles": "Articles"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Lead.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Lead.json
new file mode 100644
index 0000000000..daf6f63ce7
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Lead.json
@@ -0,0 +1,68 @@
+{
+ "labels": {
+ "Converted To": "Converted To",
+ "Create Lead": "Create Lead",
+ "Convert": "Convert",
+ "convert": "convert"
+ },
+ "fields": {
+ "name": "Name",
+ "emailAddress": "Email",
+ "title": "Title",
+ "website": "Website",
+ "phoneNumber": "Phone",
+ "accountName": "Account Name",
+ "doNotCall": "Do Not Call",
+ "address": "Address",
+ "status": "Status",
+ "source": "Source",
+ "opportunityAmount": "Opportunity Amount",
+ "opportunityAmountConverted": "Opportunity Amount (converted)",
+ "description": "Description",
+ "createdAccount": "Account",
+ "createdContact": "Contact",
+ "createdOpportunity": "Opportunity",
+ "campaign": "Campaign",
+ "targetLists": "Target Lists",
+ "targetList": "Target List",
+ "industry": "Industry",
+ "acceptanceStatus": "Acceptance Status",
+ "opportunityAmountCurrency": "Opportunity Amount Currency"
+ },
+ "links": {
+ "targetLists": "Target Lists",
+ "campaignLogRecords": "Campaign Log",
+ "campaign": "Campaign",
+ "createdAccount": "Account",
+ "createdContact": "Contact",
+ "createdOpportunity": "Opportunity",
+ "cases": "Cases",
+ "documents": "Documents"
+ },
+ "options": {
+ "status": {
+ "New": "New",
+ "Assigned": "Assigned",
+ "In Process": "In Process",
+ "Converted": "Converted",
+ "Recycled": "Recycled",
+ "Dead": "Dead"
+ },
+ "source": {
+ "": "None",
+ "Call": "Call",
+ "Email": "Email",
+ "Existing Customer": "Existing Customer",
+ "Partner": "Partner",
+ "Public Relations": "Public Relations",
+ "Web Site": "Web Site",
+ "Campaign": "Campaign",
+ "Other": "Other"
+ }
+ },
+ "presetFilters": {
+ "active": "Active",
+ "actual": "Actual",
+ "converted": "Converted"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/MassEmail.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/MassEmail.json
new file mode 100644
index 0000000000..09048b63af
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/MassEmail.json
@@ -0,0 +1,53 @@
+{
+ "fields": {
+ "name": "Name",
+ "status": "Status",
+ "storeSentEmails": "Store Sent Emails",
+ "startAt": "Date Start",
+ "fromAddress": "From Address",
+ "fromName": "From Name",
+ "replyToAddress": "Reply-to Address",
+ "replyToName": "Reply-to Name",
+ "campaign": "Campaign",
+ "emailTemplate": "Email Template",
+ "inboundEmail": "Email Account",
+ "targetLists": "Target Lists",
+ "excludingTargetLists": "Excluding Target Lists",
+ "optOutEntirely": "Opt-Out Entirely"
+ },
+ "links": {
+ "targetLists": "Target Lists",
+ "excludingTargetLists": "Excluding Target Lists",
+ "queueItems": "Queue Items",
+ "campaign": "Campaign",
+ "emailTemplate": "Email Template",
+ "inboundEmail": "Email Account"
+ },
+ "options": {
+ "status": {
+ "Draft": "Draft",
+ "Pending": "Pending",
+ "In Process": "In Process",
+ "Complete": "Complete",
+ "Canceled": "Cancelled",
+ "Failed": "Failed"
+ }
+ },
+ "labels": {
+ "Create MassEmail": "Create Mass Email",
+ "Send Test": "Send Test"
+ },
+ "messages": {
+ "selectAtLeastOneTarget": "Select at least one target.",
+ "testSent": "Test email(s) supposed to be sent"
+ },
+ "tooltips": {
+ "optOutEntirely": "Email addresses of recipients that unsubscribed will be marked as opted out and they will not receive any mass emails anymore.",
+ "targetLists": "Targets that should receive messages.",
+ "excludingTargetLists": "Targets that should not receive messages."
+ },
+ "presetFilters": {
+ "actual": "Actual",
+ "complete": "Complete"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Meeting.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Meeting.json
new file mode 100644
index 0000000000..89e1261556
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Meeting.json
@@ -0,0 +1,50 @@
+{
+ "fields": {
+ "name": "Name",
+ "parent": "Parent",
+ "status": "Status",
+ "dateStart": "Date Start",
+ "dateEnd": "Date End",
+ "duration": "Duration",
+ "description": "Description",
+ "users": "Users",
+ "contacts": "Contacts",
+ "leads": "Leads",
+ "reminders": "Reminders",
+ "account": "Account",
+ "acceptanceStatus": "Acceptance Status"
+ },
+ "options": {
+ "status": {
+ "Planned": "Planned",
+ "Held": "Held",
+ "Not Held": "Not Held"
+ },
+ "acceptanceStatus": {
+ "None": "None",
+ "Accepted": "Accepted",
+ "Declined": "Declined",
+ "Tentative": "Tentative"
+ }
+ },
+ "massActions": {
+ "setHeld": "Set Held",
+ "setNotHeld": "Set Not Held"
+ },
+ "labels": {
+ "Create Meeting": "Create Meeting",
+ "Set Held": "Set Held",
+ "Set Not Held": "Set Not Held",
+ "Send Invitations": "Send Invitations",
+ "on time": "on time",
+ "before": "before"
+ },
+ "presetFilters": {
+ "planned": "Planned",
+ "held": "Held",
+ "todays": "Today's"
+ },
+ "messages": {
+ "nothingHasBeenSent": "Nothing were sent"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Opportunity.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Opportunity.json
new file mode 100644
index 0000000000..0918957462
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Opportunity.json
@@ -0,0 +1,47 @@
+{
+ "fields": {
+ "name": "Name",
+ "account": "Account",
+ "stage": "Stage",
+ "amount": "Amount",
+ "probability": "Probability, %",
+ "leadSource": "Lead Source",
+ "doNotCall": "Do Not Call",
+ "closeDate": "Close Date",
+ "contacts": "Contacts",
+ "description": "Description",
+ "amountConverted": "Amount (converted)",
+ "amountWeightedConverted": "Amount Weighted",
+ "campaign": "Campaign",
+ "originalLead": "Original Lead",
+ "amountCurrency": "Amount Currency"
+ },
+ "links": {
+ "contacts": "Contacts",
+ "documents": "Documents",
+ "campaign": "Campaign",
+ "originalLead": "Original Lead"
+ },
+ "options": {
+ "stage": {
+ "Prospecting": "Prospecting",
+ "Qualification": "Qualification",
+ "Needs Analysis": "Needs Analysis",
+ "Value Proposition": "Value Proposition",
+ "Id. Decision Makers": "Id. Decision Makers",
+ "Perception Analysis": "Perception Analysis",
+ "Proposal/Price Quote": "Proposal/Price Quote",
+ "Negotiation/Review": "Negotiation/Review",
+ "Closed Won": "Closed Won",
+ "Closed Lost": "Closed Lost"
+ }
+ },
+ "labels": {
+ "Create Opportunity": "Create Opportunity"
+ },
+ "presetFilters": {
+ "open": "Open",
+ "won": "Won",
+ "lost": "Lost"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Portal.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Portal.json
new file mode 100644
index 0000000000..708ee278ac
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Portal.json
@@ -0,0 +1,5 @@
+{
+ "links": {
+ "articles": "Knowledge Base Articles"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/ScheduledJob.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/ScheduledJob.json
new file mode 100644
index 0000000000..3ac2edaa6f
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/ScheduledJob.json
@@ -0,0 +1,8 @@
+{
+ "options": {
+ "job": {
+ "ProcessMassEmail": "Send Mass Emails",
+ "ControlKnowledgeBaseArticleStatus": "Control Knowledge Base Article Status"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/TargetList.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/TargetList.json
new file mode 100644
index 0000000000..f3e5a3d5fe
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/TargetList.json
@@ -0,0 +1,34 @@
+{
+ "fields": {
+ "name": "Name",
+ "description": "Description",
+ "entryCount": "Entry Count",
+ "campaigns": "Campaigns",
+ "endDate": "End Date",
+ "targetLists": "Target Lists",
+ "includingActionList": "Including",
+ "excludingActionList": "Excluding"
+ },
+ "links": {
+ "accounts": "Accounts",
+ "contacts": "Contacts",
+ "leads": "Leads",
+ "campaigns": "Campaigns",
+ "massEmails": "Mass Emails"
+ },
+ "options": {
+ "type": {
+ "Email": "Email",
+ "Web": "Web",
+ "Television": "Television",
+ "Radio": "Radio",
+ "Newsletter": "Newsletter"
+ }
+ },
+ "labels": {
+ "Create TargetList": "Create Target List",
+ "Opted Out": "Opted Out",
+ "Cancel Opt-Out": "Cancel Opt-Out",
+ "Opt-Out": "Opt-Out"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/Task.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Task.json
new file mode 100644
index 0000000000..017e8eaa20
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/Task.json
@@ -0,0 +1,47 @@
+{
+ "fields": {
+ "name": "Name",
+ "parent": "Parent",
+ "status": "Status",
+ "dateStart": "Date Start",
+ "dateEnd": "Date Due",
+ "dateStartDate": "Date Start (all day)",
+ "dateEndDate": "Date End (all day)",
+ "priority": "Priority",
+ "description": "Description",
+ "isOverdue": "Is Overdue",
+ "account": "Account",
+ "dateCompleted": "Date Completed",
+ "attachments": "Attachments",
+ "reminders": "Reminders"
+ },
+ "links": {
+ "attachments": "Attachments"
+ },
+ "options": {
+ "status": {
+ "Not Started": "Not Started",
+ "Started": "Started",
+ "Completed": "Completed",
+ "Canceled": "Cancelled",
+ "Deferred": "Deferred"
+ },
+ "priority": {
+ "Low": "Low",
+ "Normal": "Normal",
+ "High": "High",
+ "Urgent": "Urgent"
+ }
+ },
+ "labels": {
+ "Create Task": "Create Task",
+ "Complete": "Complete"
+ },
+ "presetFilters": {
+ "actual": "Actual",
+ "completed": "Completed",
+ "todays": "Today's",
+ "overdue": "Overdue",
+ "deferred": "Deferred"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Modules/Crm/Resources/i18n/en_GB/User.json b/application/Espo/Modules/Crm/Resources/i18n/en_GB/User.json
new file mode 100644
index 0000000000..33c1388e4c
--- /dev/null
+++ b/application/Espo/Modules/Crm/Resources/i18n/en_GB/User.json
@@ -0,0 +1,8 @@
+{
+ "links": {
+ "targetLists": "Target Lists"
+ },
+ "fields": {
+ "acceptanceStatus": "Acceptance Status"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/ActionHistoryRecord.json b/application/Espo/Resources/i18n/en_GB/ActionHistoryRecord.json
new file mode 100644
index 0000000000..6ff174a391
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/ActionHistoryRecord.json
@@ -0,0 +1,27 @@
+{
+ "fields": {
+ "user": "User",
+ "action": "Action",
+ "createdAt": "Date",
+ "target": "Target",
+ "targetType": "Target Type",
+ "authToken": "Auth Token",
+ "ipAddress": "IP Address"
+ },
+ "links": {
+ "authToken": "Auth Token",
+ "user": "User",
+ "target": "Target"
+ },
+ "presetFilters": {
+ "onlyMy": "Only My"
+ },
+ "options": {
+ "action": {
+ "read": "Read",
+ "update": "Update",
+ "delete": "Delete",
+ "create": "Create"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Admin.json b/application/Espo/Resources/i18n/en_GB/Admin.json
new file mode 100644
index 0000000000..9139f4a3e8
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Admin.json
@@ -0,0 +1,211 @@
+{
+ "labels": {
+ "Enabled": "Enabled",
+ "Disabled": "Disabled",
+ "System": "System",
+ "Users": "Users",
+ "Email": "Email",
+ "Data": "Data",
+ "Customization": "Customisation",
+ "Available Fields": "Available Fields",
+ "Layout": "Layout",
+ "Entity Manager": "Entity Manager",
+ "Add Panel": "Add Panel",
+ "Add Field": "Add Field",
+ "Settings": "Settings",
+ "Scheduled Jobs": "Scheduled Jobs",
+ "Upgrade": "Upgrade",
+ "Clear Cache": "Clear Cache",
+ "Rebuild": "Rebuild",
+ "Teams": "Teams",
+ "Roles": "Roles",
+ "Portal": "Portal",
+ "Portals": "Portals",
+ "Portal Roles": "Portal Roles",
+ "Outbound Emails": "Outbound Emails",
+ "Group Email Accounts": "Group Email Accounts",
+ "Personal Email Accounts": "Personal Email Accounts",
+ "Inbound Emails": "Inbound Emails",
+ "Email Templates": "Email Templates",
+ "Import": "Import",
+ "Layout Manager": "Layout Manager",
+ "User Interface": "User Interface",
+ "Auth Tokens": "Auth Tokens",
+ "Authentication": "Authentication",
+ "Currency": "Currency",
+ "Integrations": "Integrations",
+ "Extensions": "Extensions",
+ "Upload": "Upload",
+ "Installing...": "Installing...",
+ "Upgrading...": "Upgrading...",
+ "Upgraded successfully": "Upgraded successfully",
+ "Installed successfully": "Installed successfully",
+ "Ready for upgrade": "Ready for upgrade",
+ "Run Upgrade": "Run Upgrade",
+ "Install": "Install",
+ "Ready for installation": "Ready for installation",
+ "Uninstalling...": "Uninstalling...",
+ "Uninstalled": "Uninstalled",
+ "Create Entity": "Create Entity",
+ "Edit Entity": "Edit Entity",
+ "Create Link": "Create Link",
+ "Edit Link": "Edit Link",
+ "Notifications": "Notifications",
+ "Jobs": "Jobs",
+ "Reset to Default": "Reset to Default",
+ "Email Filters": "Email Filters",
+ "Portal Users": "Portal Users",
+ "Action History": "Action History"
+ },
+ "layouts": {
+ "list": "List",
+ "detail": "Detail",
+ "listSmall": "List (Small)",
+ "detailSmall": "Detail (Small)",
+ "filters": "Search Filters",
+ "massUpdate": "Mass Update",
+ "relationships": "Relationship Panels",
+ "sidePanelsDetail": "Side Panels (Detail)",
+ "sidePanelsEdit": "Side Panels (Edit)",
+ "sidePanelsDetailSmall": "Side Panels (Detail Small)",
+ "sidePanelsEditSmall": "Side Panels (Edit Small)"
+ },
+ "fieldTypes": {
+ "address": "Address",
+ "array": "Array",
+ "foreign": "Foreign",
+ "duration": "Duration",
+ "password": "Password",
+ "personName": "Person Name",
+ "autoincrement": "Auto-increment",
+ "bool": "Boolean",
+ "currency": "Currency",
+ "date": "Date",
+ "datetime": "DateTime",
+ "datetimeOptional": "Date/DateTime",
+ "email": "Email",
+ "enum": "Enum",
+ "enumInt": "Enum Integer",
+ "enumFloat": "Enum Float",
+ "float": "Float",
+ "int": "Int",
+ "link": "Link",
+ "linkMultiple": "Link Multiple",
+ "linkParent": "Link Parent",
+ "multienim": "Multienum",
+ "phone": "Phone",
+ "text": "Text",
+ "url": "Url",
+ "varchar": "Varchar",
+ "file": "File",
+ "image": "Image",
+ "multiEnum": "Multi-Enum",
+ "attachmentMultiple": "Attachment Multiple",
+ "rangeInt": "Range Integer",
+ "rangeFloat": "Range Float",
+ "rangeCurrency": "Range Currency",
+ "wysiwyg": "Wysiwyg",
+ "map": "Map",
+ "currencyConverted": "Currency (Converted)",
+ "number": "Number"
+ },
+ "fields": {
+ "type": "Type",
+ "name": "Name",
+ "label": "Label",
+ "required": "Required",
+ "default": "Default",
+ "maxLength": "Max Length",
+ "options": "Options",
+ "after": "After (field)",
+ "before": "Before (field)",
+ "link": "Link",
+ "field": "Field",
+ "min": "Min",
+ "max": "Max",
+ "translation": "Translation",
+ "previewSize": "Preview Size",
+ "defaultType": "Default Type",
+ "seeMoreDisabled": "Disable Text Cut",
+ "entityList": "Entity List",
+ "isSorted": "Is Sorted (alphabetically)",
+ "audited": "Audited",
+ "trim": "Trim",
+ "height": "Height (px)",
+ "minHeight": "Min Height (px)",
+ "provider": "Provider",
+ "typeList": "Type List",
+ "rows": "Number of rows of textarea",
+ "lengthOfCut": "Length of cut",
+ "sourceList": "Source List",
+ "tooltipText": "Tooltip Text",
+ "prefix": "Prefix",
+ "nextNumber": "Next Number",
+ "padLength": "Pad Length",
+ "disableFormatting": "Disable Formatting",
+ "dynamicLogicVisible": "Conditions making field visible",
+ "dynamicLogicReadOnly": "Conditions making field read-only",
+ "dynamicLogicRequired": "Conditions making field required",
+ "dynamicLogicOptions": "Conditional options",
+ "probabilityMap": "Stage Probabilities (%)",
+ "readOnly": "Read-only"
+ },
+ "messages": {
+ "selectEntityType": "Select entity type in the left menu.",
+ "selectUpgradePackage": "Select upgrade package",
+ "downloadUpgradePackage": "Download upgrade package(s) here.",
+ "selectLayout": "Select needed layout in the left menu and edit it.",
+ "selectExtensionPackage": "Select extension package",
+ "extensionInstalled": "Extension {name} {version} has been installed.",
+ "installExtension": "Extension {name} {version} is ready for an installation.",
+ "upgradeVersion": "EspoCRM will be upgraded to version {version}. Please be patient as this may take a while.",
+ "upgradeDone": "EspoCRM has been upgraded to version {version}.",
+ "upgradeBackup": "We recommend making a backup of your EspoCRM files and data before upgrading.",
+ "thousandSeparatorEqualsDecimalMark": "The thousands separator character can not be the same as the decimal point character.",
+ "userHasNoEmailAddress": "User has no email address.",
+ "uninstallConfirmation": "Are you sure you want to uninstall the extension?"
+ },
+ "descriptions": {
+ "settings": "System settings of application.",
+ "scheduledJob": "Jobs which are executed by cron.",
+ "upgrade": "Upgrade EspoCRM.",
+ "clearCache": "Clear all backend cache.",
+ "rebuild": "Rebuild backend and clear cache.",
+ "users": "Users management.",
+ "teams": "Teams management.",
+ "roles": "Roles management.",
+ "portals": "Portals management.",
+ "portalRoles": "Roles for portal.",
+ "outboundEmails": "SMTP settings for outgoing emails.",
+ "groupEmailAccounts": "Group IMAP email accounts. Email import and Email-to-Case.",
+ "personalEmailAccounts": "Users email accounts.",
+ "emailTemplates": "Templates for outbound emails.",
+ "import": "Import data from CSV file.",
+ "layoutManager": "Customise layouts (list, detail, edit, search, mass update).",
+ "userInterface": "Configure UI.",
+ "authTokens": "Active auth sessions. IP address and last access date.",
+ "authentication": "Authentication settings.",
+ "currency": "Currency settings and rates.",
+ "extensions": "Install or uninstall extensions.",
+ "integrations": "Integration with third-party services.",
+ "notifications": "In-app and email notification settings.",
+ "inboundEmails": "Settings for incoming emails.",
+ "portalUsers": "Users of portal.",
+ "entityManager": "Create and edit custom entities. Manage fields and relationships.",
+ "emailFilters": "Email messages that match the specified filter won't be imported.",
+ "actionHistory": "Log of user actions."
+ },
+ "options": {
+ "previewSize": {
+ "x-small": "X-Small",
+ "small": "Small",
+ "medium": "Medium",
+ "large": "Large"
+ }
+ },
+ "logicalOperators": {
+ "and": "AND",
+ "or": "OR",
+ "not": "NOT"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Attachment.json b/application/Espo/Resources/i18n/en_GB/Attachment.json
new file mode 100644
index 0000000000..8ceefefbad
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Attachment.json
@@ -0,0 +1,5 @@
+{
+ "insertFromSourceLabels": {
+ "Document": "Insert Document"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/AuthToken.json b/application/Espo/Resources/i18n/en_GB/AuthToken.json
new file mode 100644
index 0000000000..5311f54b6a
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/AuthToken.json
@@ -0,0 +1,23 @@
+{
+ "fields": {
+ "user": "User",
+ "ipAddress": "IP Address",
+ "lastAccess": "Last Access Date",
+ "createdAt": "Login Date",
+ "isActive": "Is Active",
+ "portal": "Portal"
+ },
+ "links": {
+ "actionHistoryRecords": "Action History"
+ },
+ "presetFilters": {
+ "active": "Active",
+ "inactive": "Inactive"
+ },
+ "labels": {
+ "Set Inactive": "Set Inactive"
+ },
+ "massActions": {
+ "setInactive": "Set Inactive"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/DashletOptions.json b/application/Espo/Resources/i18n/en_GB/DashletOptions.json
new file mode 100644
index 0000000000..5a5880a68a
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/DashletOptions.json
@@ -0,0 +1,32 @@
+{
+ "fields": {
+ "title": "Title",
+ "dateFrom": "Date From",
+ "dateTo": "Date To",
+ "autorefreshInterval": "Auto-refresh Interval",
+ "displayRecords": "Display Records",
+ "isDoubleHeight": "Height 2x",
+ "mode": "Mode",
+ "enabledScopeList": "What to display",
+ "users": "Users",
+ "entityType": "Entity Type",
+ "primaryFilter": "Primary Filter",
+ "boolFilterList": "Additional Filters",
+ "sortBy": "Order (field)",
+ "sortDirection": "Order (direction)",
+ "expandedLayout": "Layout"
+ },
+ "options": {
+ "mode": {
+ "agendaWeek": "Week (agenda)",
+ "basicWeek": "Week",
+ "month": "Month",
+ "basicDay": "Day",
+ "agendaDay": "Day (agenda)",
+ "timeline": "Timeline"
+ }
+ },
+ "messages": {
+ "selectEntityType": "Select Entity Type in dashlet options."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/DynamicLogic.json b/application/Espo/Resources/i18n/en_GB/DynamicLogic.json
new file mode 100644
index 0000000000..3a38475392
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/DynamicLogic.json
@@ -0,0 +1,28 @@
+{
+ "label": {
+ "Field": "Field"
+ },
+ "options": {
+ "operators": {
+ "equals": "Equals",
+ "notEquals": "Not Equals",
+ "greaterThan": "Greater Than",
+ "lessThan": "Less Than",
+ "greaterThanOrEquals": "Greater Than Or Equals",
+ "lessThanOrEquals": "Less Than Or Equals",
+ "in": "In",
+ "notIn": "Not In",
+ "inPast": "In Past",
+ "inFuture": "Is Future",
+ "isToday": "Is Today",
+ "isTrue": "Is True",
+ "isFalse": "Is False",
+ "isEmpty": "Is Empty",
+ "isNotEmpty": "Is Not Empty",
+ "contains": "Contains",
+ "has": "Contains",
+ "notContains": "Not Contains",
+ "notHas": "Not Contains"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Email.json b/application/Espo/Resources/i18n/en_GB/Email.json
new file mode 100644
index 0000000000..8a5b1e576a
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Email.json
@@ -0,0 +1,106 @@
+{
+ "fields": {
+ "parent": "Parent",
+ "status": "Status",
+ "dateSent": "Date Sent",
+ "from": "From",
+ "to": "To",
+ "cc": "CC",
+ "bcc": "BCC",
+ "replyTo": "Reply To",
+ "replyToString": "Reply To (String)",
+ "isHtml": "Is Html",
+ "body": "Body",
+ "subject": "Subject",
+ "attachments": "Attachments",
+ "selectTemplate": "Select Template",
+ "fromEmailAddress": "From Address",
+ "toEmailAddresses": "To Address",
+ "emailAddress": "Email Address",
+ "deliveryDate": "Delivery Date",
+ "account": "Account",
+ "users": "Users",
+ "replied": "Replied",
+ "replies": "Replies",
+ "isRead": "Is Read",
+ "isNotRead": "Is Not Read",
+ "isImportant": "Is Important",
+ "isUsers": "Is User's",
+ "inTrash": "In Trash",
+ "name": "Name (Subject)",
+ "isReplied": "Is Replied",
+ "isNotReplied": "Is Not Replied",
+ "sentBy": "Sent by (User)",
+ "folder": "Folder",
+ "inboundEmails": "Group Accounts",
+ "emailAccounts": "Personal Accounts",
+ "hasAttachment": "Has Attachment"
+ },
+ "links": {
+ "replied": "Replied",
+ "replies": "Replies",
+ "inboundEmails": "Group Accounts",
+ "emailAccounts": "Personal Accounts"
+ },
+ "options": {
+ "status": {
+ "Draft": "Draft",
+ "Sending": "Sending",
+ "Sent": "Sent",
+ "Archived": "Archived",
+ "Received": "Received",
+ "Failed": "Failed"
+ }
+ },
+ "labels": {
+ "Create Email": "Archive Email",
+ "Archive Email": "Archive Email",
+ "Compose": "Compose",
+ "Reply": "Reply",
+ "Reply to All": "Reply to All",
+ "Forward": "Forward",
+ "Original message": "Original message",
+ "Forwarded message": "Forwarded message",
+ "Email Accounts": "Personal Email Accounts",
+ "Inbound Emails": "Group Email Accounts",
+ "Email Templates": "Email Templates",
+ "Send Test Email": "Send Test Email",
+ "Send": "Send",
+ "Email Address": "Email Address",
+ "Mark Read": "Mark Read",
+ "Sending...": "Sending...",
+ "Save Draft": "Save Draft",
+ "Mark all as read": "Mark all as read",
+ "Show Plain Text": "Show Plain Text",
+ "Mark as Important": "Mark as Important",
+ "Unmark Importance": "Unmark Importance",
+ "Move to Trash": "Move to Trash",
+ "Retrieve from Trash": "Retrieve from Trash",
+ "Move to Folder": "Move to Folder",
+ "Filters": "Filters",
+ "Folders": "Folders"
+ },
+ "messages": {
+ "noSmtpSetup": "No SMTP setup. {link}.",
+ "testEmailSent": "Test email has been sent",
+ "emailSent": "Email has been sent",
+ "savedAsDraft": "Saved as draft"
+ },
+ "presetFilters": {
+ "sent": "Sent",
+ "archived": "Archived",
+ "inbox": "Inbox",
+ "drafts": "Drafts",
+ "trash": "Trash",
+ "important": "Important"
+ },
+ "massActions": {
+ "markAsRead": "Mark as Read",
+ "markAsNotRead": "Mark as Not Read",
+ "markAsImportant": "Mark as Important",
+ "markAsNotImportant": "Unmark Importance",
+ "moveToTrash": "Move to Trash",
+ "moveToFolder": "Move to Folder",
+ "retrieveFromTrash": "Retrieve from Trash"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/EmailAccount.json b/application/Espo/Resources/i18n/en_GB/EmailAccount.json
new file mode 100644
index 0000000000..2fdae49fdc
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/EmailAccount.json
@@ -0,0 +1,50 @@
+{
+ "fields": {
+ "name": "Name",
+ "status": "Status",
+ "host": "Host",
+ "username": "Username",
+ "password": "Password",
+ "port": "Port",
+ "monitoredFolders": "Monitored Folders",
+ "ssl": "SSL",
+ "fetchSince": "Fetch Since",
+ "emailAddress": "Email Address",
+ "sentFolder": "Sent Folder",
+ "storeSentEmails": "Store Sent Emails",
+ "keepFetchedEmailsUnread": "Keep Fetched Emails Unread",
+ "emailFolder": "Put in Folder",
+ "useSmtp": "Use SMTP",
+ "smtpHost": "SMTP Host",
+ "smtpPort": "SMTP Port",
+ "smtpAuth": "SMTP Auth",
+ "smtpSecurity": "SMTP Security",
+ "smtpUsername": "SMTP Username",
+ "smtpPassword": "SMTP Password"
+ },
+ "links": {
+ "filters": "Filters",
+ "emails": "Emails"
+ },
+ "options": {
+ "status": {
+ "Active": "Active",
+ "Inactive": "Inactive"
+ }
+ },
+ "labels": {
+ "Create EmailAccount": "Create Email Account",
+ "IMAP": "IMAP",
+ "Main": "Main",
+ "Test Connection": "Test Connection",
+ "Send Test Email": "Send Test Email",
+ "SMTP": "SMTP"
+ },
+ "messages": {
+ "couldNotConnectToImap": "Could not connect to IMAP server",
+ "connectionIsOk": "Connection is Ok"
+ },
+ "tooltips": {
+ "storeSentEmails": "Sent emails will be stored on the IMAP server. Email Address field should much the address emails will be sent from."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/EmailAddress.json b/application/Espo/Resources/i18n/en_GB/EmailAddress.json
new file mode 100644
index 0000000000..1b4756a20d
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/EmailAddress.json
@@ -0,0 +1,7 @@
+{
+ "labels": {
+ "Primary": "Primary",
+ "Opted Out": "Opted Out",
+ "Invalid": "Invalid"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/EmailFilter.json b/application/Espo/Resources/i18n/en_GB/EmailFilter.json
new file mode 100644
index 0000000000..b90ba44437
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/EmailFilter.json
@@ -0,0 +1,29 @@
+{
+ "fields": {
+ "from": "From",
+ "to": "To",
+ "subject": "Subject",
+ "bodyContains": "Body Contains",
+ "action": "Action",
+ "isGlobal": "Is Global",
+ "emailFolder": "Folder"
+ },
+ "labels": {
+ "Create EmailFilter": "Create Email Filter",
+ "Emails": "Emails"
+ },
+ "tooltips": {
+ "from": "Emails being sent from the specified address. Leave empty if not needed. You can use wildcard *.",
+ "to": "Emails being sent to the specified address. Leave empty if not needed. You can use wildcard *.",
+ "name": "Give the filter a descriptive name.",
+ "subject": "Use a wildcard *:\n\ntext* - starts with text,\n*text* - contains text,\n*text - ends with text.",
+ "bodyContains": "Body of the email contains any of the specified words or phrases.",
+ "isGlobal": "Applies this filter to all emails incoming to system."
+ },
+ "options": {
+ "action": {
+ "Skip": "Ignore",
+ "Move to Folder": "Put in Folder"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/EmailFolder.json b/application/Espo/Resources/i18n/en_GB/EmailFolder.json
new file mode 100644
index 0000000000..156f191dc3
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/EmailFolder.json
@@ -0,0 +1,10 @@
+{
+ "fields": {
+ "skipNotifications": "Skip Notifications"
+ },
+ "labels": {
+ "Create EmailFolder": "Create Folder",
+ "Manage Folders": "Manage Folders",
+ "Emails": "Emails"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/EmailTemplate.json b/application/Espo/Resources/i18n/en_GB/EmailTemplate.json
new file mode 100644
index 0000000000..a68f1820ab
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/EmailTemplate.json
@@ -0,0 +1,25 @@
+{
+ "fields": {
+ "name": "Name",
+ "status": "Status",
+ "isHtml": "Is Html",
+ "body": "Body",
+ "subject": "Subject",
+ "attachments": "Attachments",
+ "insertField": "Insert Field",
+ "oneOff": "One-off"
+ },
+ "labels": {
+ "Create EmailTemplate": "Create Email Template",
+ "Info": "Info"
+ },
+ "tooltips": {
+ "oneOff": "Check if you are going to use this template only once. E.g. for Mass Email."
+ },
+ "presetFilters": {
+ "actual": "Actual"
+ },
+ "messages": {
+ "infoText": "Available variables:\n\n{optOutUrl} – URL for an unsubsbribe link;\n\n{optOutLink} – an unsubscribe link."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/EntityManager.json b/application/Espo/Resources/i18n/en_GB/EntityManager.json
new file mode 100644
index 0000000000..791dea8a24
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/EntityManager.json
@@ -0,0 +1,69 @@
+{
+ "labels": {
+ "Fields": "Fields",
+ "Relationships": "Relationships",
+ "Schedule": "Schedule",
+ "Log": "Log",
+ "Formula": "Formula"
+ },
+ "fields": {
+ "name": "Name",
+ "type": "Type",
+ "labelSingular": "Label Singular",
+ "labelPlural": "Label Plural",
+ "stream": "Stream",
+ "label": "Label",
+ "linkType": "Link Type",
+ "entityForeign": "Foreign Entity",
+ "linkForeign": "Foreign Link",
+ "link": "Link",
+ "labelForeign": "Foreign Label",
+ "sortBy": "Default Order (field)",
+ "sortDirection": "Default Order (direction)",
+ "relationName": "Middle Table Name",
+ "linkMultipleField": "Link Multiple Field",
+ "linkMultipleFieldForeign": "Foreign Link Multiple Field",
+ "disabled": "Disabled",
+ "textFilterFields": "Text Filter Fields",
+ "audited": "Audited",
+ "auditedForeign": "Foreign Audited",
+ "statusField": "Status Field",
+ "beforeSaveCustomScript": "Before Save Custom Script"
+ },
+ "options": {
+ "type": {
+ "": "None",
+ "Base": "Base",
+ "Person": "Person",
+ "CategoryTree": "Category Tree",
+ "Event": "Event",
+ "BasePlus": "Base Plus",
+ "Company": "Company"
+ },
+ "linkType": {
+ "manyToMany": "Many-to-Many",
+ "oneToMany": "One-to-Many",
+ "manyToOne": "Many-to-One",
+ "parentToChildren": "Parent-to-Children",
+ "childrenToParent": "Children-to-Parent"
+ },
+ "sortDirection": {
+ "asc": "Ascending",
+ "desc": "Descending"
+ }
+ },
+ "messages": {
+ "entityCreated": "Entity has been created",
+ "linkAlreadyExists": "Link name conflict.",
+ "linkConflict": "Name conflict: link or field with the same name already exists."
+ },
+ "tooltips": {
+ "statusField": "Updates of this field are logged in stream.",
+ "textFilterFields": "Fields used by text search.",
+ "stream": "Whether entity has a Stream.",
+ "disabled": "Check if you don't need this entity in your system.",
+ "linkAudited": "Creating related record and linking with existing record will be logged in Stream.",
+ "linkMultipleField": "Link Multiple field provides a handy way to edit relations. Don't use it if you can have a large number of related records.",
+ "entityType": "Base Plus - has Activities, History and Tasks panels.\n\nEvent - available in Calendar and Activities panel."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Export.json b/application/Espo/Resources/i18n/en_GB/Export.json
new file mode 100644
index 0000000000..0fb8ca98ec
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Export.json
@@ -0,0 +1,13 @@
+{
+ "fields": {
+ "fieldList": "Field List",
+ "exportAllFields": "Export all fields",
+ "format": "Format"
+ },
+ "options": {
+ "format": {
+ "csv": "CSV",
+ "xlsx": "XLSX (Excel)"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Extension.json b/application/Espo/Resources/i18n/en_GB/Extension.json
new file mode 100644
index 0000000000..03329cc805
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Extension.json
@@ -0,0 +1,15 @@
+{
+ "fields": {
+ "name": "Name",
+ "version": "Version",
+ "description": "Description",
+ "isInstalled": "Installed"
+ },
+ "labels": {
+ "Uninstall": "Uninstall",
+ "Install": "Install"
+ },
+ "messages": {
+ "uninstalled": "Extension {name} has been uninstalled"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/ExternalAccount.json b/application/Espo/Resources/i18n/en_GB/ExternalAccount.json
new file mode 100644
index 0000000000..e267645735
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/ExternalAccount.json
@@ -0,0 +1,6 @@
+{
+ "labels": {
+ "Connect": "Connect",
+ "Connected": "Connected"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/FieldManager.json b/application/Espo/Resources/i18n/en_GB/FieldManager.json
new file mode 100644
index 0000000000..36466d0e97
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/FieldManager.json
@@ -0,0 +1,75 @@
+{
+ "labels": {
+ "Dynamic Logic": "Dynamic Logic"
+ },
+ "options": {
+ "dateTimeDefault": {
+ "": "None",
+ "javascript: return this.dateTime.getNow(1);": "Now",
+ "javascript: return this.dateTime.getNow(5);": "Now (5m)",
+ "javascript: return this.dateTime.getNow(15);": "Now (15m)",
+ "javascript: return this.dateTime.getNow(30);": "Now (30m)",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(1, 'hours', 15);": "+1 hour",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(2, 'hours', 15);": "+2 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(3, 'hours', 15);": "+3 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(4, 'hours', 15);": "+4 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(5, 'hours', 15);": "+5 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(6, 'hours', 15);": "+6 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(7, 'hours', 15);": "+7 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(8, 'hours', 15);": "+8 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(9, 'hours', 15);": "+9 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(10, 'hours', 15);": "+10 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(11, 'hours', 15);": "+11 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(12, 'hours', 15);": "+12 hours",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(1, 'days', 15);": "+1 day",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(2, 'days', 15);": "+2 days",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(3, 'days', 15);": "+3 days",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(4, 'days', 15);": "+4 days",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(5, 'days', 15);": "+5 days",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(6, 'days', 15);": "+6 days",
+ "javascript: return this.dateTime.getDateTimeShiftedFromNow(1, 'week', 15);": "+1 week"
+ },
+ "dateDefault": {
+ "": "None",
+ "javascript: return this.dateTime.getToday();": "Today",
+ "javascript: return this.dateTime.getDateShiftedFromToday(1, 'days');": "+1 day",
+ "javascript: return this.dateTime.getDateShiftedFromToday(2, 'days');": "+2 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(3, 'days');": "+3 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(4, 'days');": "+4 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(5, 'days');": "+5 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(6, 'days');": "+6 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(7, 'days');": "+7 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(8, 'days');": "+8 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(9, 'days');": "+9 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(10, 'days');": "+10 days",
+ "javascript: return this.dateTime.getDateShiftedFromToday(1, 'weeks');": "+1 week",
+ "javascript: return this.dateTime.getDateShiftedFromToday(2, 'weeks');": "+2 weeks",
+ "javascript: return this.dateTime.getDateShiftedFromToday(3, 'weeks');": "+3 weeks",
+ "javascript: return this.dateTime.getDateShiftedFromToday(1, 'months');": "+1 month",
+ "javascript: return this.dateTime.getDateShiftedFromToday(2, 'months');": "+2 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(3, 'months');": "+3 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(4, 'months');": "+4 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(5, 'months');": "+5 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(6, 'months');": "+6 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(7, 'months');": "+7 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(8, 'months');": "+8 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(9, 'months');": "+9 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(10, 'months');": "+10 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(11, 'months');": "+11 months",
+ "javascript: return this.dateTime.getDateShiftedFromToday(1, 'year');": "+1 year"
+ }
+ },
+ "tooltips": {
+ "audited": "Updates will be logged in stream.",
+ "required": "Field will be mandatory. Can't be left empty.",
+ "default": "Value will be set by default upon creating.",
+ "min": "Min acceptable value.",
+ "max": "Max acceptable value.",
+ "seeMoreDisabled": "If not checked then long texts will be shortened.",
+ "lengthOfCut": "How long text can be before it will be cut.",
+ "maxLength": "Max acceptable length of text.",
+ "before": "The date value should be before the date value of the specified field.",
+ "after": "The date value should be after the date value of the specified field.",
+ "readOnly": "Field value can't be specified by user. But can be calculated by formula."
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Global.json b/application/Espo/Resources/i18n/en_GB/Global.json
new file mode 100644
index 0000000000..66cd484b01
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Global.json
@@ -0,0 +1,706 @@
+{
+ "scopeNames": {
+ "Email": "Email",
+ "User": "User",
+ "Team": "Team",
+ "Role": "Role",
+ "EmailTemplate": "Email Template",
+ "EmailAccount": "Personal Email Account",
+ "EmailAccountScope": "Personal Email Account",
+ "OutboundEmail": "Outbound Email",
+ "ScheduledJob": "Scheduled Job",
+ "ExternalAccount": "External Account",
+ "Extension": "Extension",
+ "Dashboard": "Dashboard",
+ "InboundEmail": "Group Email Account",
+ "Stream": "Stream",
+ "Import": "Import",
+ "Template": "Template",
+ "Job": "Job",
+ "EmailFilter": "Email Filter",
+ "Portal": "Portal",
+ "PortalRole": "Portal Role",
+ "Attachment": "Attachment",
+ "EmailFolder": "Email Folder",
+ "PortalUser": "Portal User",
+ "ScheduledJobLogRecord": "Scheduled Job Log Record",
+ "PasswordChangeRequest": "Password Change Request",
+ "ActionHistoryRecord": "Action History Record",
+ "AuthToken": "Auth Token",
+ "UniqueId": "Unique ID",
+ "LastViewed": "Last Viewed"
+ },
+ "scopeNamesPlural": {
+ "Email": "Emails",
+ "User": "Users",
+ "Team": "Teams",
+ "Role": "Roles",
+ "EmailTemplate": "Email Templates",
+ "EmailAccount": "Personal Email Accounts",
+ "EmailAccountScope": "Personal Email Accounts",
+ "OutboundEmail": "Outbound Emails",
+ "ScheduledJob": "Scheduled Jobs",
+ "ExternalAccount": "External Accounts",
+ "Extension": "Extensions",
+ "Dashboard": "Dashboard",
+ "InboundEmail": "Group Email Accounts",
+ "Stream": "Stream",
+ "Import": "Import Results",
+ "Template": "Templates",
+ "Job": "Jobs",
+ "EmailFilter": "Email Filters",
+ "Portal": "Portals",
+ "PortalRole": "Portal Roles",
+ "Attachment": "Attachments",
+ "EmailFolder": "Email Folders",
+ "PortalUser": "Portal Users",
+ "ScheduledJobLogRecord": "Scheduled Job Log Records",
+ "PasswordChangeRequest": "Password Change Requests",
+ "ActionHistoryRecord": "Action History",
+ "AuthToken": "Auth Tokens",
+ "UniqueId": "Unique IDs",
+ "LastViewed": "Last Viewed"
+ },
+ "labels": {
+ "Misc": "Misc",
+ "Merge": "Merge",
+ "None": "None",
+ "Home": "Home",
+ "by": "by",
+ "Saved": "Saved",
+ "Error": "Error",
+ "Select": "Select",
+ "Not valid": "Not valid",
+ "Please wait...": "Please wait...",
+ "Please wait": "Please wait",
+ "Loading...": "Loading...",
+ "Uploading...": "Uploading...",
+ "Sending...": "Sending...",
+ "Merging...": "Merging...",
+ "Merged": "Merged",
+ "Removed": "Removed",
+ "Posted": "Posted",
+ "Linked": "Linked",
+ "Unlinked": "Unlinked",
+ "Done": "Done",
+ "Access denied": "Access denied",
+ "Not found": "Not found",
+ "Access": "Access",
+ "Are you sure?": "Are you sure?",
+ "Record has been removed": "Record has been removed",
+ "Wrong username/password": "Wrong username/password",
+ "Post cannot be empty": "Post cannot be empty",
+ "Removing...": "Removing...",
+ "Unlinking...": "Unlinking...",
+ "Posting...": "Posting...",
+ "Username can not be empty!": "Username can not be empty!",
+ "Cache is not enabled": "Cache is not enabled",
+ "Cache has been cleared": "Cache has been cleared",
+ "Rebuild has been done": "Rebuild has been done",
+ "Saving...": "Saving...",
+ "Modified": "Modified",
+ "Created": "Created",
+ "Create": "Create",
+ "create": "create",
+ "Overview": "Overview",
+ "Details": "Details",
+ "Add Field": "Add Field",
+ "Add Dashlet": "Add Dashlet",
+ "Filter": "Filter",
+ "Edit Dashboard": "Edit Dashboard",
+ "Add": "Add",
+ "Add Item": "Add Item",
+ "Reset": "Reset",
+ "Menu": "Menu",
+ "More": "More",
+ "Search": "Search",
+ "Only My": "Only My",
+ "Open": "Open",
+ "Admin": "Admin",
+ "About": "About",
+ "Refresh": "Refresh",
+ "Remove": "Remove",
+ "Options": "Options",
+ "Username": "Username",
+ "Password": "Password",
+ "Login": "Login",
+ "Log Out": "Log Out",
+ "Preferences": "Preferences",
+ "State": "County",
+ "Street": "Street",
+ "Country": "Country",
+ "City": "City",
+ "PostalCode": "Postal Code",
+ "Followed": "Followed",
+ "Follow": "Follow",
+ "Followers": "Followers",
+ "Clear Local Cache": "Clear Local Cache",
+ "Actions": "Actions",
+ "Delete": "Delete",
+ "Update": "Update",
+ "Save": "Save",
+ "Edit": "Edit",
+ "View": "View",
+ "Cancel": "Cancel",
+ "Apply": "Apply",
+ "Unlink": "Unlink",
+ "Mass Update": "Mass Update",
+ "Export": "Export",
+ "No Data": "No Data",
+ "No Access": "No Access",
+ "All": "All",
+ "Active": "Active",
+ "Inactive": "Inactive",
+ "Write your comment here": "Write your comment here",
+ "Post": "Post",
+ "Stream": "Stream",
+ "Show more": "Show more",
+ "Dashlet Options": "Dashlet Options",
+ "Full Form": "Full Form",
+ "Insert": "Insert",
+ "Person": "Person",
+ "First Name": "First Name",
+ "Last Name": "Last Name",
+ "Original": "Original",
+ "You": "You",
+ "you": "you",
+ "change": "change",
+ "Change": "Change",
+ "Primary": "Primary",
+ "Save Filter": "Save Filter",
+ "Administration": "Administration",
+ "Run Import": "Run Import",
+ "Duplicate": "Duplicate",
+ "Notifications": "Notifications",
+ "Mark all read": "Mark all read",
+ "See more": "See more",
+ "Today": "Today",
+ "Tomorrow": "Tomorrow",
+ "Yesterday": "Yesterday",
+ "Submit": "Submit",
+ "Close": "Close",
+ "Yes": "Yes",
+ "No": "No",
+ "Value": "Value",
+ "Current version": "Current version",
+ "List View": "List View",
+ "Tree View": "Tree View",
+ "Unlink All": "Unlink All",
+ "Total": "Total",
+ "Print to PDF": "Print to PDF",
+ "Default": "Default",
+ "Number": "Number",
+ "From": "From",
+ "To": "To",
+ "Create Post": "Create Post",
+ "Previous Entry": "Previous Entry",
+ "Next Entry": "Next Entry",
+ "View List": "View List",
+ "Attach File": "Attach File",
+ "Skip": "Skip",
+ "Attribute": "Attribute",
+ "Function": "Function",
+ "Self-Assign": "Self-Assign",
+ "Self-Assigned": "Self-Assigned",
+ "Return to Application": "Return to Application",
+ "Select All Results": "Select All Results"
+ },
+ "messages": {
+ "pleaseWait": "Please wait...",
+ "posting": "Posting...",
+ "confirmLeaveOutMessage": "Are you sure you want to leave the form?",
+ "notModified": "You have not modified the record",
+ "fieldIsRequired": "{field} is required",
+ "fieldShouldAfter": "{field} should be after {otherField}",
+ "fieldShouldBefore": "{field} should be before {otherField}",
+ "fieldShouldBeBetween": "{field} should be between {min} and {max}",
+ "fieldShouldBeLess": "{field} should be less then {value}",
+ "fieldShouldBeGreater": "{field} should be greater then {value}",
+ "fieldBadPasswordConfirm": "{field} not confirmed properly",
+ "resetPreferencesDone": "Preferences has been reset to defaults",
+ "confirmation": "Are you sure?",
+ "unlinkAllConfirmation": "Are you sure you want to unlink all related records?",
+ "resetPreferencesConfirmation": "Are you sure you want to reset preferences to defaults?",
+ "removeRecordConfirmation": "Are you sure you want to remove the record?",
+ "unlinkRecordConfirmation": "Are you sure you want to unlink the related record?",
+ "removeSelectedRecordsConfirmation": "Are you sure you want to remove selected records?",
+ "massUpdateResult": "{count} records have been updated",
+ "massUpdateResultSingle": "{count} record has been updated",
+ "noRecordsUpdated": "No records were updated",
+ "massRemoveResult": "{count} records have been removed",
+ "massRemoveResultSingle": "{count} record has been removed",
+ "noRecordsRemoved": "No records were removed",
+ "clickToRefresh": "Click to refresh",
+ "writeYourCommentHere": "Write your comment here",
+ "writeMessageToUser": "Write a message to {user}",
+ "typeAndPressEnter": "Type & press enter",
+ "checkForNewNotifications": "Check for new notifications",
+ "duplicate": "The record you are creating might already exist",
+ "dropToAttach": "Drop to attach",
+ "streamPostInfo": "Type @username to mention users in the post.\n\nAvailable markdown syntax:\n`code`\n**strong text**\n*emphasized text*\n~deleted text~\n> blockquote\n[link text](url)",
+ "writeMessageToSelf": "Write a message on your stream",
+ "checkForNewNotes": "Check for stream updates",
+ "internalPost": "Post will be seen only by internal users",
+ "done": "Done",
+ "confirmMassFollow": "Are you sure you want to follow selected records?",
+ "confirmMassUnfollow": "Are you sure you want to unfollow selected records?",
+ "massFollowResult": "{count} records now are followed",
+ "massUnfollowResult": "{count} records now are not followed",
+ "massFollowResultSingle": "{count} record now is followed",
+ "massUnfollowResultSingle": "{count} record now is not followed",
+ "massFollowZeroResult": "Nothing got followed",
+ "massUnfollowZeroResult": "Nothing got unfollowed",
+ "fieldShouldBeEmail": "{field} should be a valid email",
+ "fieldShouldBeFloat": "{field} should be a valid float",
+ "fieldShouldBeInt": "{field} should be a valid integer",
+ "fieldShouldBeDate": "{field} should be a valid date",
+ "fieldShouldBeDatetime": "{field} should be a valid date/time",
+ "internalPostTitle": "Post is seen only by internal users"
+ },
+ "boolFilters": {
+ "onlyMy": "Only My",
+ "followed": "Followed"
+ },
+ "presetFilters": {
+ "followed": "Followed",
+ "all": "All"
+ },
+ "massActions": {
+ "remove": "Remove",
+ "merge": "Merge",
+ "massUpdate": "Mass Update",
+ "export": "Export",
+ "follow": "Follow",
+ "unfollow": "Unfollow"
+ },
+ "fields": {
+ "name": "Name",
+ "firstName": "First Name",
+ "lastName": "Last Name",
+ "salutationName": "Salutation",
+ "assignedUser": "Assigned User",
+ "assignedUsers": "Assigned Users",
+ "emailAddress": "Email",
+ "assignedUserName": "Assigned User Name",
+ "teams": "Teams",
+ "createdAt": "Created At",
+ "modifiedAt": "Modified At",
+ "createdBy": "Created By",
+ "modifiedBy": "Modified By",
+ "description": "Description",
+ "address": "Address",
+ "phoneNumber": "Phone",
+ "phoneNumberMobile": "Phone (Mobile)",
+ "phoneNumberHome": "Phone (Home)",
+ "phoneNumberFax": "Phone (Fax)",
+ "phoneNumberOffice": "Phone (Office)",
+ "phoneNumberOther": "Phone (Other)",
+ "order": "Order",
+ "parent": "Parent",
+ "children": "Children",
+ "id": "ID"
+ },
+ "links": {
+ "assignedUser": "Assigned User",
+ "createdBy": "Created By",
+ "modifiedBy": "Modified By",
+ "team": "Team",
+ "roles": "Roles",
+ "teams": "Teams",
+ "users": "Users",
+ "parent": "Parent",
+ "children": "Children"
+ },
+ "dashlets": {
+ "Stream": "Stream",
+ "Emails": "My Inbox",
+ "Records": "Record List"
+ },
+ "notificationMessages": {
+ "assign": "{entityType} {entity} has been assigned to you",
+ "emailReceived": "Email received from {from}",
+ "entityRemoved": "{user} removed {entityType} {entity}"
+ },
+ "streamMessages": {
+ "post": "{user} posted on {entityType} {entity}",
+ "attach": "{user} attached on {entityType} {entity}",
+ "status": "{user} updated {field} of {entityType} {entity}",
+ "update": "{user} updated {entityType} {entity}",
+ "postTargetTeam": "{user} posted to team {target}",
+ "postTargetTeams": "{user} posted to teams {target}",
+ "postTargetPortal": "{user} posted to portal {target}",
+ "postTargetPortals": "{user} posted to portals {target}",
+ "postTarget": "{user} posted to {target}",
+ "postTargetYou": "{user} posted to you",
+ "postTargetYouAndOthers": "{user} posted to {target} and you",
+ "postTargetAll": "{user} posted to all",
+ "mentionInPost": "{user} mentioned {mentioned} in {entityType} {entity}",
+ "mentionYouInPost": "{user} mentioned you in {entityType} {entity}",
+ "mentionInPostTarget": "{user} mentioned {mentioned} in post",
+ "mentionYouInPostTarget": "{user} mentioned you in post to {target}",
+ "mentionYouInPostTargetAll": "{user} mentioned you in post to all",
+ "mentionYouInPostTargetNoTarget": "{user} mentioned you in post",
+ "create": "{user} created {entityType} {entity}",
+ "createThis": "{user} created this {entityType}",
+ "createAssignedThis": "{user} created this {entityType} assigned to {assignee}",
+ "createAssigned": "{user} created {entityType} {entity} assigned to {assignee}",
+ "assign": "{user} assigned {entityType} {entity} to {assignee}",
+ "assignThis": "{user} assigned this {entityType} to {assignee}",
+ "postThis": "{user} posted",
+ "attachThis": "{user} attached",
+ "statusThis": "{user} updated {field}",
+ "updateThis": "{user} updated this {entityType}",
+ "createRelatedThis": "{user} created {relatedEntityType} {relatedEntity} related to this {entityType}",
+ "createRelated": "{user} created {relatedEntityType} {relatedEntity} related to {entityType} {entity}",
+ "relate": "{user} linked {relatedEntityType} {relatedEntity} with {entityType} {entity}",
+ "relateThis": "{user} linked {relatedEntityType} {relatedEntity} with this {entityType}",
+ "emailReceivedFromThis": "Email received from {from}",
+ "emailReceivedInitialFromThis": "Email received from {from}, this {entityType} created",
+ "emailReceivedThis": "Email received",
+ "emailReceivedInitialThis": "Email received, this {entityType} created",
+ "emailReceivedFrom": "Email received from {from}, related to {entityType} {entity}",
+ "emailReceivedFromInitial": "Email received from {from}, {entityType} {entity} created",
+ "emailReceivedInitialFrom": "Email received from {from}, {entityType} {entity} created",
+ "emailReceived": "Email received related to {entityType} {entity}",
+ "emailReceivedInitial": "Email received: {entityType} {entity} created",
+ "emailSent": "{by} sent email related to {entityType} {entity}",
+ "emailSentThis": "{by} sent email",
+ "postTargetSelf": "{user} self-posted",
+ "postTargetSelfAndOthers": "{user} posted to {target} and themself",
+ "createAssignedYou": "{user} created {entityType} {entity} assigned to you",
+ "createAssignedThisSelf": "{user} created this {entityType} self-assigned",
+ "createAssignedSelf": "{user} created {entityType} {entity} self-assigned",
+ "assignYou": "{user} assigned {entityType} {entity} to you",
+ "assignThisVoid": "{user} unassigned this {entityType}",
+ "assignVoid": "{user} unassigned {entityType} {entity}",
+ "assignThisSelf": "{user} self-assigned this {entityType}",
+ "assignSelf": "{user} self-assigned {entityType} {entity}"
+ },
+ "lists": {
+ "monthNames": [
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"
+ ],
+ "monthNamesShort": [
+ "Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec"
+ ],
+ "dayNames": [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+ ],
+ "dayNamesShort": [
+ "Sun",
+ "Mon",
+ "Tue",
+ "Wed",
+ "Thu",
+ "Fri",
+ "Sat"
+ ],
+ "dayNamesMin": [
+ "Su",
+ "Mo",
+ "Tu",
+ "We",
+ "Th",
+ "Fr",
+ "Sa"
+ ]
+ },
+ "options": {
+ "salutationName": {
+ "Mr.": "Mr.",
+ "Mrs.": "Mrs.",
+ "Ms.": "Ms.",
+ "Dr.": "Dr."
+ },
+ "language": {
+ "af_ZA": "Afrikaans",
+ "az_AZ": "Azerbaijani",
+ "be_BY": "Belarusian",
+ "bg_BG": "Bulgarian",
+ "bn_IN": "Bengali",
+ "bs_BA": "Bosnian",
+ "ca_ES": "Catalan",
+ "cs_CZ": "Czech",
+ "cy_GB": "Welsh",
+ "da_DK": "Danish",
+ "de_DE": "German",
+ "el_GR": "Greek",
+ "en_GB": "English (UK)",
+ "en_US": "English (US)",
+ "es_ES": "Spanish (Spain)",
+ "et_EE": "Estonian",
+ "eu_ES": "Basque",
+ "fa_IR": "Persian",
+ "fi_FI": "Finnish",
+ "fo_FO": "Faroese",
+ "fr_CA": "French (Canada)",
+ "fr_FR": "French (France)",
+ "ga_IE": "Irish",
+ "gl_ES": "Galician",
+ "gn_PY": "Guarani",
+ "he_IL": "Hebrew",
+ "hi_IN": "Hindi",
+ "hr_HR": "Croatian",
+ "hu_HU": "Hungarian",
+ "hy_AM": "Armenian",
+ "id_ID": "Indonesian",
+ "is_IS": "Icelandic",
+ "it_IT": "Italian",
+ "ja_JP": "Japanese",
+ "ka_GE": "Georgian",
+ "km_KH": "Khmer",
+ "ko_KR": "Korean",
+ "ku_TR": "Kurdish",
+ "lt_LT": "Lithuanian",
+ "lv_LV": "Latvian",
+ "mk_MK": "Macedonian",
+ "ml_IN": "Malayalam",
+ "ms_MY": "Malay",
+ "nb_NO": "Norwegian Bokmål",
+ "nn_NO": "Norwegian Nynorsk",
+ "ne_NP": "Nepali",
+ "nl_NL": "Dutch",
+ "pa_IN": "Punjabi",
+ "pl_PL": "Polish",
+ "ps_AF": "Pashto",
+ "pt_BR": "Portuguese (Brazil)",
+ "pt_PT": "Portuguese (Portugal)",
+ "ro_RO": "Romanian",
+ "ru_RU": "Russian",
+ "sk_SK": "Slovak",
+ "sl_SI": "Slovene",
+ "sq_AL": "Albanian",
+ "sr_RS": "Serbian",
+ "sv_SE": "Swedish",
+ "sw_KE": "Swahili",
+ "ta_IN": "Tamil",
+ "te_IN": "Telugu",
+ "th_TH": "Thai",
+ "tl_PH": "Tagalog",
+ "tr_TR": "Turkish",
+ "uk_UA": "Ukrainian",
+ "ur_PK": "Urdu",
+ "vi_VN": "Vietnamese",
+ "zh_CN": "Simplified Chinese (China)",
+ "zh_HK": "Traditional Chinese (Hong Kong)",
+ "zh_TW": "Traditional Chinese (Taiwan)"
+ },
+ "dateSearchRanges": {
+ "on": "On",
+ "notOn": "Not On",
+ "after": "After",
+ "before": "Before",
+ "between": "Between",
+ "today": "Today",
+ "past": "Past",
+ "future": "Future",
+ "currentMonth": "Current Month",
+ "lastMonth": "Last Month",
+ "currentQuarter": "Current Quarter",
+ "lastQuarter": "Last Quarter",
+ "currentYear": "Current Year",
+ "lastYear": "Last Year",
+ "lastSevenDays": "Last 7 Days",
+ "lastXDays": "Last X Days",
+ "nextXDays": "Next X Days",
+ "ever": "Ever",
+ "isEmpty": "Is Empty",
+ "olderThanXDays": "Older Than X Days",
+ "afterXDays": "After X Days"
+ },
+ "searchRanges": {
+ "is": "Is",
+ "isEmpty": "Is Empty",
+ "isNotEmpty": "Is Not Empty",
+ "isFromTeams": "Is From Team",
+ "isOneOf": "Any Of",
+ "anyOf": "Any Of",
+ "isNot": "Is Not",
+ "isNotOneOf": "None Of",
+ "noneOf": "None Of"
+ },
+ "varcharSearchRanges": {
+ "equals": "Equals",
+ "like": "Is Like (%)",
+ "startsWith": "Starts With",
+ "endsWith": "Ends With",
+ "contains": "Contains",
+ "isEmpty": "Is Empty",
+ "isNotEmpty": "Is Not Empty"
+ },
+ "intSearchRanges": {
+ "equals": "Equals",
+ "notEquals": "Not Equals",
+ "greaterThan": "Greater Than",
+ "lessThan": "Less Than",
+ "greaterThanOrEquals": "Greater Than or Equals",
+ "lessThanOrEquals": "Less Than or Equals",
+ "between": "Between",
+ "isEmpty": "Is Empty",
+ "isNotEmpty": "Is Not Empty"
+ },
+ "autorefreshInterval": {
+ "0": "None",
+ "1": "1 minute",
+ "2": "2 minutes",
+ "5": "5 minutes",
+ "10": "10 minutes",
+ "0.5": "30 seconds"
+ },
+ "phoneNumber": {
+ "Mobile": "Mobile",
+ "Office": "Office",
+ "Fax": "Fax",
+ "Home": "Home",
+ "Other": "Other"
+ }
+ },
+ "sets": {
+ "summernote": {
+ "NOTICE": "You can find translation here: https://github.com/HackerWins/summernote/tree/master/lang",
+ "font": {
+ "bold": "Bold",
+ "italic": "Italic",
+ "underline": "Underline",
+ "strike": "Strike",
+ "clear": "Remove Font Style",
+ "height": "Line Height",
+ "name": "Font Family",
+ "size": "Font Size"
+ },
+ "image": {
+ "image": "Picture",
+ "insert": "Insert Image",
+ "resizeFull": "Resize Full",
+ "resizeHalf": "Resize Half",
+ "resizeQuarter": "Resize Quarter",
+ "floatLeft": "Float Left",
+ "floatRight": "Float Right",
+ "floatNone": "Float None",
+ "dragImageHere": "Drag an image here",
+ "selectFromFiles": "Select from files",
+ "url": "Image URL",
+ "remove": "Remove Image"
+ },
+ "link": {
+ "link": "Link",
+ "insert": "Insert Link",
+ "unlink": "Unlink",
+ "edit": "Edit",
+ "textToDisplay": "Text to display",
+ "url": "To what URL should this link go?",
+ "openInNewWindow": "Open in new window"
+ },
+ "video": {
+ "video": "Video",
+ "videoLink": "Video Link",
+ "insert": "Insert Video",
+ "url": "Video URL?",
+ "providers": "(YouTube, Vimeo, Vine, Instagram, or DailyMotion)"
+ },
+ "table": {
+ "table": "Table"
+ },
+ "hr": {
+ "insert": "Insert Horizontal Rule"
+ },
+ "style": {
+ "style": "Style",
+ "normal": "Normal",
+ "blockquote": "Quote",
+ "pre": "Code",
+ "h1": "Header 1",
+ "h2": "Header 2",
+ "h3": "Header 3",
+ "h4": "Header 4",
+ "h5": "Header 5",
+ "h6": "Header 6"
+ },
+ "lists": {
+ "unordered": "Unordered list",
+ "ordered": "Ordered list"
+ },
+ "options": {
+ "help": "Help",
+ "fullscreen": "Full Screen",
+ "codeview": "Code View"
+ },
+ "paragraph": {
+ "paragraph": "Paragraph",
+ "outdent": "Outdent",
+ "indent": "Indent",
+ "left": "Align left",
+ "center": "Align center",
+ "right": "Align right",
+ "justify": "Justify full"
+ },
+ "color": {
+ "recent": "Recent Color",
+ "more": "More Color",
+ "background": "BackColor",
+ "foreground": "FontColor",
+ "transparent": "Transparent",
+ "setTransparent": "Set transparent",
+ "reset": "Reset",
+ "resetToDefault": "Reset to default"
+ },
+ "shortcut": {
+ "shortcuts": "Keyboard shortcuts",
+ "close": "Close",
+ "textFormatting": "Text formatting",
+ "action": "Action",
+ "paragraphFormatting": "Paragraph formatting",
+ "documentStyle": "Document Style"
+ },
+ "history": {
+ "undo": "Undo",
+ "redo": "Redo"
+ }
+ }
+ },
+ "themes": {
+ "Espo": "Espo",
+ "Sakura": "Sakura",
+ "Violet": "Violet",
+ "EspoRtl": "RTL Espo",
+ "EspoVertical": "Espo w/ sidebar",
+ "SakuraVertical": "Sakura w/ sidebar",
+ "VioletVertical": "Violet w/ sidebar",
+ "Hazyblue": "Hazyblue",
+ "HazyblueVertical": "Hazyblue w/ sidebar"
+ },
+ "streamMessagesMale": {
+ "postTargetSelfAndOthers": "{user} posted to {target} and himself"
+ },
+ "streamMessagesFemale": {
+ "postTargetSelfAndOthers": "{user} posted to {target} and herself"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Import.json b/application/Espo/Resources/i18n/en_GB/Import.json
new file mode 100644
index 0000000000..a80a7d3d7b
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Import.json
@@ -0,0 +1,74 @@
+{
+ "labels": {
+ "Revert Import": "Revert Import",
+ "Return to Import": "Return to Import",
+ "Run Import": "Run Import",
+ "Back": "Back",
+ "Field Mapping": "Field Mapping",
+ "Default Values": "Default Values",
+ "Add Field": "Add Field",
+ "Created": "Created",
+ "Updated": "Updated",
+ "Result": "Result",
+ "Show records": "Show records",
+ "Remove Duplicates": "Remove Duplicates",
+ "importedCount": "Imported (count)",
+ "duplicateCount": "Duplicates (count)",
+ "updatedCount": "Updated (count)",
+ "Create Only": "Create Only",
+ "Create and Update": "Create & Update",
+ "Update Only": "Update Only",
+ "Update by": "Update by",
+ "Set as Not Duplicate": "Set as Not Duplicate",
+ "File (CSV)": "File (CSV)",
+ "First Row Value": "First Row Value",
+ "Skip": "Skip",
+ "Header Row Value": "Header Row Value",
+ "Field": "Field",
+ "What to Import?": "What to Import?",
+ "Entity Type": "Entity Type",
+ "What to do?": "What to do?",
+ "Properties": "Properties",
+ "Header Row": "Header Row",
+ "Person Name Format": "Person Name Format",
+ "John Smith": "John Smith",
+ "Smith John": "Smith John",
+ "Smith, John": "Smith, John",
+ "Field Delimiter": "Field Delimiter",
+ "Date Format": "Date Format",
+ "Decimal Mark": "Decimal Mark",
+ "Text Qualifier": "Text Qualifier",
+ "Time Format": "Time Format",
+ "Currency": "Currency",
+ "Preview": "Preview",
+ "Next": "Next",
+ "Step 1": "Step 1",
+ "Step 2": "Step 2",
+ "Double Quote": "Double Quote",
+ "Single Quote": "Single Quote",
+ "Imported": "Imported",
+ "Duplicates": "Duplicates",
+ "Skip searching for duplicates": "Skip searching for duplicates",
+ "Timezone": "Timezone"
+ },
+ "messages": {
+ "utf8": "Should be UTF-8 encoded",
+ "duplicatesRemoved": "Duplicates removed",
+ "inIdle": "Execute in idle (for big data; via cron)"
+ },
+ "fields": {
+ "file": "File",
+ "entityType": "Entity Type",
+ "imported": "Imported Records",
+ "duplicates": "Duplicate Records",
+ "updated": "Updated Records",
+ "status": "Status"
+ },
+ "options": {
+ "status": {
+ "Failed": "Failed",
+ "In Process": "In Process",
+ "Complete": "Complete"
+ }
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/InboundEmail.json b/application/Espo/Resources/i18n/en_GB/InboundEmail.json
new file mode 100644
index 0000000000..7044179eb9
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/InboundEmail.json
@@ -0,0 +1,63 @@
+{
+ "fields": {
+ "name": "Name",
+ "emailAddress": "Email Address",
+ "status": "Status",
+ "assignToUser": "Assign to User",
+ "host": "Host",
+ "username": "Username",
+ "password": "Password",
+ "port": "Port",
+ "monitoredFolders": "Monitored Folders",
+ "trashFolder": "Trash Folder",
+ "ssl": "SSL",
+ "createCase": "Create Case",
+ "reply": "Auto-Reply",
+ "caseDistribution": "Case Distribution",
+ "replyEmailTemplate": "Reply Email Template",
+ "replyFromAddress": "Reply From Address",
+ "replyToAddress": "Reply To Address",
+ "replyFromName": "Reply From Name",
+ "targetUserPosition": "Target User Position",
+ "fetchSince": "Fetch Since",
+ "addAllTeamUsers": "For all team users",
+ "team": "Target Team",
+ "teams": "Teams"
+ },
+ "tooltips": {
+ "reply": "Notify email senders that their emails has been received.\n\n Only one email will be sent to a particular recipient during some period of time to prevent looping.",
+ "createCase": "Automatically create case from incoming emails.",
+ "replyToAddress": "Specify email address of this mailbox to make responses come here.",
+ "caseDistribution": "How cases will be assigned to. Assigned directly to the user or among the team.",
+ "assignToUser": "User cases will be assigned to.",
+ "team": "Team cases will be assigned to.",
+ "teams": "Teams emails will be assigned to.",
+ "addAllTeamUsers": "Emails will be appearing in Inbox of all users of specified teams.",
+ "targetUserPosition": "Users with specified position will be distributed with cases."
+ },
+ "links": {
+ "filters": "Filters",
+ "emails": "Emails"
+ },
+ "options": {
+ "status": {
+ "Active": "Active",
+ "Inactive": "Inactive"
+ },
+ "caseDistribution": {
+ "": "None",
+ "Direct-Assignment": "Direct-Assignment",
+ "Round-Robin": "Round-Robin",
+ "Least-Busy": "Least-Busy"
+ }
+ },
+ "labels": {
+ "Create InboundEmail": "Create Email Account",
+ "IMAP": "IMAP",
+ "Actions": "Actions",
+ "Main": "Main"
+ },
+ "messages": {
+ "couldNotConnectToImap": "Could not connect to IMAP server"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/en_GB/Integration.json b/application/Espo/Resources/i18n/en_GB/Integration.json
new file mode 100644
index 0000000000..64218c08b3
--- /dev/null
+++ b/application/Espo/Resources/i18n/en_GB/Integration.json
@@ -0,0 +1,20 @@
+{
+ "fields": {
+ "enabled": "Enabled",
+ "clientId": "Client ID",
+ "clientSecret": "Client Secret",
+ "redirectUri": "Redirect URI",
+ "apiKey": "API Key"
+ },
+ "messages": {
+ "selectIntegration": "Select an integration from menu.",
+ "noIntegrations": "No Integrations is available."
+ },
+ "help": {
+ "Google": "
Obtain OAuth 2.0 credentials from the Google Developers Console.
Visit Google Developers Console to obtain OAuth 2.0 credentials such as a Client ID and Client Secret that are known to both Google and EspoCRM application.
", + "GoogleMaps": "Obtain API key here.
" + }, + "titles": { + "GoogleMaps": "Google Maps" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/Job.json b/application/Espo/Resources/i18n/en_GB/Job.json new file mode 100644 index 0000000000..60f95d7eee --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/Job.json @@ -0,0 +1,20 @@ +{ + "fields": { + "status": "Status", + "executeTime": "Execute At", + "attempts": "Attempts Left", + "failedAttempts": "Failed Attempts", + "serviceName": "Service", + "method": "Method", + "scheduledJob": "Scheduled Job", + "data": "Data" + }, + "options": { + "status": { + "Pending": "Pending", + "Success": "Success", + "Running": "Running", + "Failed": "Failed" + } + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/LayoutManager.json b/application/Espo/Resources/i18n/en_GB/LayoutManager.json new file mode 100644 index 0000000000..cc2fe975c4 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/LayoutManager.json @@ -0,0 +1,25 @@ +{ + "fields": { + "width": "Width (%)", + "link": "Link", + "notSortable": "Not Sortable", + "align": "Align", + "panelName": "Panel Name", + "style": "Style", + "sticked": "Sticked" + }, + "options": { + "align": { + "left": "Left", + "right": "Right" + }, + "style": { + "default": "Default", + "success": "Success", + "danger": "Danger", + "info": "Info", + "warning": "Warning", + "primary": "Primary" + } + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/Note.json b/application/Espo/Resources/i18n/en_GB/Note.json new file mode 100644 index 0000000000..d45d6c5989 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/Note.json @@ -0,0 +1,28 @@ +{ + "fields": { + "post": "Post", + "attachments": "Attachments", + "targetType": "Target", + "teams": "Teams", + "users": "Users", + "portals": "Portals", + "type": "Type" + }, + "filters": { + "all": "All", + "posts": "Posts", + "updates": "Updates" + }, + "messages": { + "writeMessage": "Write your message here" + }, + "options": { + "targetType": { + "self": "to myself", + "users": "to particular user(s)", + "teams": "to particular team(s)", + "all": "to all internal users", + "portals": "to portal users" + } + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/Portal.json b/application/Espo/Resources/i18n/en_GB/Portal.json new file mode 100644 index 0000000000..3e6ab693de --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/Portal.json @@ -0,0 +1,37 @@ +{ + "fields": { + "name": "Name", + "logo": "Logo", + "companyLogo": "Logo", + "url": "URL", + "portalRoles": "Roles", + "isActive": "Is Active", + "isDefault": "Is Default", + "tabList": "Tab List", + "quickCreateList": "Quick Create List", + "theme": "Theme", + "language": "Language", + "dashboardLayout": "Dashboard Layout", + "dateFormat": "Date Format", + "timeFormat": "Time Format", + "timeZone": "Time Zone", + "weekStart": "First Day of Week", + "defaultCurrency": "Default Currency", + "customUrl": "Custom URL", + "customId": "Custom ID" + }, + "links": { + "users": "Users", + "portalRoles": "Roles", + "notes": "Notes" + }, + "tooltips": { + "portalRoles": "Specified Portal Roles will be applied to all users of this portal." + }, + "labels": { + "Create Portal": "Create Portal", + "User Interface": "User Interface", + "General": "General", + "Settings": "Settings" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/PortalRole.json b/application/Espo/Resources/i18n/en_GB/PortalRole.json new file mode 100644 index 0000000000..fbeaecbc47 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/PortalRole.json @@ -0,0 +1,11 @@ +{ + "links": { + "users": "Users" + }, + "labels": { + "Access": "Access", + "Create PortalRole": "Create Portal Role", + "Scope Level": "Scope Level", + "Field Level": "Field Level" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/PortalUser.json b/application/Espo/Resources/i18n/en_GB/PortalUser.json new file mode 100644 index 0000000000..221eb7c8b1 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/PortalUser.json @@ -0,0 +1,5 @@ +{ + "labels": { + "Create PortalUser": "Create Portal User" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/Preferences.json b/application/Espo/Resources/i18n/en_GB/Preferences.json new file mode 100644 index 0000000000..49a5f807aa --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/Preferences.json @@ -0,0 +1,53 @@ +{ + "fields": { + "dateFormat": "Date Format", + "timeFormat": "Time Format", + "timeZone": "Time Zone", + "weekStart": "First Day of Week", + "thousandSeparator": "Thousand Separator", + "decimalMark": "Decimal Mark", + "defaultCurrency": "Default Currency", + "currencyList": "Currency List", + "language": "Language", + "smtpServer": "Server", + "smtpPort": "Port", + "smtpAuth": "Auth", + "smtpSecurity": "Security", + "smtpUsername": "Username", + "emailAddress": "Email", + "smtpPassword": "Password", + "smtpEmailAddress": "Email Address", + "exportDelimiter": "Export Delimiter", + "autoFollowEntityTypeList": "Auto-Follow", + "signature": "Email Signature", + "dashboardTabList": "Tab List", + "tabList": "Tab List", + "defaultReminders": "Default Reminders", + "theme": "Theme", + "useCustomTabList": "Custom Tab List", + "emailReplyToAllByDefault": "Email Reply to All by Default", + "receiveAssignmentEmailNotifications": "Email notifications upon assignment", + "receiveMentionEmailNotifications": "Email notifications about mentions in posts", + "receiveStreamEmailNotifications": "Email notifications about posts and status updates", + "dashboardLayout": "Dashboard Layout", + "emailReplyForceHtml": "Email Reply in HTML", + "doNotFillAssignedUserIfNotRequired": "Do not fill Assigned User if not required", + "followEntityOnStreamPost": "Auto-follow entity after posting in Stream" + }, + "options": { + "weekStart": { + "0": "Sunday", + "1": "Monday" + } + }, + "labels": { + "Notifications": "Notifications", + "User Interface": "User Interface", + "SMTP": "SMTP", + "Misc": "Misc", + "Locale": "Locale" + }, + "tooltips": { + "autoFollowEntityTypeList": "User will automatically follow all new records of the selected entity types, will see information in the stream and receive notifications." + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/Role.json b/application/Espo/Resources/i18n/en_GB/Role.json new file mode 100644 index 0000000000..b0752eb1d3 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/Role.json @@ -0,0 +1,51 @@ +{ + "fields": { + "name": "Name", + "roles": "Roles", + "assignmentPermission": "Assignment Permission", + "userPermission": "User Permission", + "portalPermission": "Portal Permission" + }, + "links": { + "users": "Users", + "teams": "Teams" + }, + "tooltips": { + "assignmentPermission": "Allows to restrict an ability to assign records and post messages to other users.\n\nall - no restriction\n\nteam - can assign and post only to teammates\n\nno - can assign and post only to self", + "userPermission": "Allows to restrict an ability for users to view activities, calendar and stream of other users.\n\nall - can view all\n\nteam - can view activities of teammates only\n\nno - can't view", + "portalPermission": "Defines an access to portal information, ability to convert contacts to portal users and post messages to portal users." + }, + "labels": { + "Access": "Access", + "Create Role": "Create Role", + "Scope Level": "Scope Level", + "Field Level": "Field Level" + }, + "options": { + "accessList": { + "not-set": "not-set", + "enabled": "enabled", + "disabled": "disabled" + }, + "levelList": { + "all": "all", + "team": "team", + "account": "account", + "contact": "contact", + "own": "own", + "no": "no", + "yes": "yes", + "not-set": "not-set" + } + }, + "actions": { + "read": "Read", + "edit": "Edit", + "delete": "Delete", + "stream": "Stream", + "create": "Create" + }, + "messages": { + "changesAfterClearCache": "All changes in an access control will be applied after cache is cleared." + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/ScheduledJob.json b/application/Espo/Resources/i18n/en_GB/ScheduledJob.json new file mode 100644 index 0000000000..e65c9ba282 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/ScheduledJob.json @@ -0,0 +1,37 @@ +{ + "fields": { + "name": "Name", + "status": "Status", + "job": "Job", + "scheduling": "Scheduling" + }, + "links": { + "log": "Log" + }, + "labels": { + "Create ScheduledJob": "Create Scheduled Job" + }, + "options": { + "job": { + "Cleanup": "Clean-up", + "CheckInboundEmails": "Check Group Email Accounts", + "CheckEmailAccounts": "Check Personal Email Accounts", + "SendEmailReminders": "Send Email Reminders", + "AuthTokenControl": "Auth Token Control", + "SendEmailNotifications": "Send Email Notifications" + }, + "cronSetup": { + "linux": "Note: Add this line to the crontab file to run Espo Scheduled Jobs:", + "mac": "Note: Add this line to the crontab file to run Espo Scheduled Jobs:", + "windows": "Note: Create a batch file with the following commands to run Espo Scheduled Jobs using Windows Scheduled Tasks:", + "default": "Note: Add this command to Cron Job (Scheduled Task):" + }, + "status": { + "Active": "Active", + "Inactive": "Inactive" + } + }, + "tooltips": { + "scheduling": "Crontab notation. Defines frequency of job runs.\n\n*/5 * * * * - every 5 minutes\n\n0 */2 * * * - every 2 hours\n\n30 1 * * * - at 01:30 once a day\n\n0 0 1 * * - on the first day of the month" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/ScheduledJobLogRecord.json b/application/Espo/Resources/i18n/en_GB/ScheduledJobLogRecord.json new file mode 100644 index 0000000000..5db832e316 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/ScheduledJobLogRecord.json @@ -0,0 +1,7 @@ +{ + "fields": { + "status": "Status", + "executionTime": "Execution Time", + "target": "Target" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/en_GB/Settings.json b/application/Espo/Resources/i18n/en_GB/Settings.json new file mode 100644 index 0000000000..f78f0415b8 --- /dev/null +++ b/application/Espo/Resources/i18n/en_GB/Settings.json @@ -0,0 +1,151 @@ +{ + "fields": { + "useCache": "Use Cache", + "dateFormat": "Date Format", + "timeFormat": "Time Format", + "timeZone": "Time Zone", + "weekStart": "First Day of Week", + "thousandSeparator": "Thousand Separator", + "decimalMark": "Decimal Mark", + "defaultCurrency": "Default Currency", + "baseCurrency": "Base Currency", + "currencyRates": "Rate Values", + "currencyList": "Currency List", + "language": "Language", + "companyLogo": "Company Logo", + "smtpServer": "Server", + "smtpPort": "Port", + "ldapPort": "Port", + "smtpAuth": "Auth", + "ldapAuth": "Auth", + "smtpSecurity": "Security", + "ldapSecurity": "Security", + "smtpUsername": "Username", + "emailAddress": "Email", + "smtpPassword": "Password", + "ldapPassword": "Password", + "outboundEmailFromName": "From Name", + "outboundEmailFromAddress": "From Address", + "outboundEmailIsShared": "Is Shared", + "recordsPerPage": "Records Per Page", + "recordsPerPageSmall": "Records Per Page (Small)", + "tabList": "Tab List", + "quickCreateList": "Quick Create List", + "exportDelimiter": "Export Delimiter", + "globalSearchEntityList": "Global Search Entity List", + "authenticationMethod": "Authentication Method", + "ldapHost": "Host", + "ldapAccountCanonicalForm": "Account Canonical Form", + "ldapAccountDomainName": "Account Domain Name", + "ldapTryUsernameSplit": "Try Username Split", + "ldapCreateEspoUser": "Create User in EspoCRM", + "ldapUserLoginFilter": "User Login Filter", + "ldapAccountDomainNameShort": "Account Domain Name Short", + "ldapOptReferrals": "Opt Referrals", + "exportDisabled": "Disable Export (only admin is allowed)", + "b2cMode": "B2C Mode", + "avatarsDisabled": "Disable Avatars", + "followCreatedEntities": "Follow Created Entities", + "displayListViewRecordCount": "Display Total Count (on List View)", + "theme": "Theme", + "userThemesDisabled": "Disable User Themes", + "emailMessageMaxSize": "Email Max Size (Mb)", + "massEmailMaxPerHourCount": "Max count of emails sent per hour", + "personalEmailMaxPortionSize": "Max email portion size for personal account fetching", + "inboundEmailMaxPortionSize": "Max email portion size for group account fetching", + "maxEmailAccountCount": "Max count of personal email accounts per user", + "authTokenLifetime": "Auth Token Lifetime (hours)", + "authTokenMaxIdleTime": "Auth Token Max Idle Time (hours)", + "dashboardLayout": "Dashboard Layout (default)", + "siteUrl": "Site URL", + "addressPreview": "Address Preview", + "addressFormat": "Address Format", + "notificationSoundsDisabled": "Disable Notification Sounds", + "applicationName": "Application Name", + "ldapUsername": "Full User DN", + "ldapBindRequiresDn": "Bind Requires DN", + "ldapBaseDn": "Base DN", + "ldapUserNameAttribute": "Username Attribute", + "ldapUserObjectClass": "User ObjectClass", + "ldapUserTitleAttribute": "User Title Attribute", + "ldapUserFirstNameAttribute": "User First Name Attribute", + "ldapUserLastNameAttribute": "User Last Name Attribute", + "ldapUserEmailAddressAttribute": "User Email Address Attribute", + "ldapUserTeams": "User Teams", + "ldapUserDefaultTeam": "User Default Team", + "ldapUserPhoneNumberAttribute": "User Phone Number Attribute", + "assignmentNotificationsEntityList": "Entities to notify about upon assignment", + "assignmentEmailNotifications": "Notifications upon assignment", + "assignmentEmailNotificationsEntityList": "Assignment email notifications scopes", + "streamEmailNotifications": "Notifications about updates in Stream for internal users", + "portalStreamEmailNotifications": "Notifications about updates in Stream for portal users", + "streamEmailNotificationsEntityList": "Stream email notifications scopes", + "calendarEntityList": "Calendar Entity List", + "mentionEmailNotifications": "Send email notifications about mentions in posts", + "massEmailDisableMandatoryOptOutLink": "Disable mandatory opt-out link", + "activitiesEntityList": "Activities Entity List", + "historyEntityList": "History Entity List", + "currencyFormat": "Currency Format", + "currencyDecimalPlaces": "Currency Decimal Places" + }, + "options": { + "weekStart": { + "0": "Sunday", + "1": "Monday" + }, + "currencyFormat": { + "1": "10 USD", + "2": "$10" + } + }, + "tooltips": { + "recordsPerPage": "Number of records initially displayed in list views.", + "recordsPerPageSmall": "Number of records initially displayed in relationship panels.", + "outboundEmailIsShared": "Allow users to sent emails via this SMTP.", + "followCreatedEntities": "Users will automatically follow records they created.", + "emailMessageMaxSize": "All inbound emails exceeding a specified size will be fetched w/o body and attachments.", + "authTokenLifetime": "Defines how long tokens can exist.\n0 - means no expiration.", + "authTokenMaxIdleTime": "Defines how long since the last access tokens can exist.\n0 - means no expiration.", + "userThemesDisabled": "If checked then users won't be able to select another theme.", + "ldapUsername": "The full system user DN which allows to search other users. E.g. \"CN=LDAP System User,OU=users,OU=espocrm, DC=test,DC=lan\".", + "ldapPassword": "The password to access to LDAP server.", + "ldapAuth": "Access credentials for the LDAP server.", + "ldapUserNameAttribute": "The attribute to identify the user. \nE.g. \"userPrincipalName\" or \"sAMAccountName\" for Active Directory, \"uid\" for OpenLDAP.", + "ldapUserObjectClass": "ObjectClass attribute for searching users. E.g. \"person\" for AD, \"inetOrgPerson\" for OpenLDAP.", + "ldapAccountCanonicalForm": "The type of your account canonical form. There are 4 options:{C}\n\tOperation not permitted? Try this one: {CSU}",
+ "Some errors occurred!": "Some errors occurred!",
+ "phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
+ "MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
+ "The PHP extension was not found...": "PHP Error: Extension {extName} is not found.",
+ "All Settings correct": "All Settings are correct",
+ "Failed to connect to database": "Failed to connect to database",
+ "PHP version": "PHP version",
+ "You must agree to the license agreement": "You must agree to the license agreement",
+ "Passwords do not match": "Passwords do not match",
+ "Enable mod_rewrite in Apache server": "Enable mod_rewrite in Apache server",
+ "checkWritable error": "checkWritable error",
+ "applySett error": "applySett error",
+ "buildDatabase error": "buildDatabase error",
+ "createUser error": "createUser error",
+ "checkAjaxPermission error": "checkAjaxPermission error",
+ "Ajax failed": "Ajax failed",
+ "Cannot create user": "Cannot create a user",
+ "Permission denied": "Permission denied",
+ "Permission denied to": "Permission denied",
+ "permissionInstruction": "\"{C}\"",
+ "operationNotPermitted": "Operation not permitted? Try this: 1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)", + "linux": "
\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)
\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n
{APACHE1}{APACHE2}\n Afterwards run this command in a Terminal:{APACHE3}{APACHE4}To{APACHE5}\n{NGINX}\n \n{NGINX}\n